1. 程式人生 > >linux_ok6410 ttyUSB0 (GPS)USB轉串列埠匯流排除錯(含程式碼)

linux_ok6410 ttyUSB0 (GPS)USB轉串列埠匯流排除錯(含程式碼)

ttyUSB0除錯已經成功好久了,移植沒來的及總結實在抱歉。

編譯環境:LINUX -3.0.1、 ok6410、RedHat6.0

目的:除錯ttyUSB0_GPS除錯:

1、首先,需要在核心選項中選中一些選項,來在核心裡安裝所需USB串列埠驅動

執行命令:make menuconfig

選擇:

Device Drivers  --->      USB support  --->         USB Serial Converter support  --->  [*]USB Generic Serial Driver         <*> USB Winchiphead CH341 Single Port Serial Driver
<*> USB CP210X family of UART Bridge Controllers   <*>USB Prolific 2303 Single Port Serial Driver(備用,順便勾上)   重新編譯核心即可。(因為我的線上標有“HL-340”,所以我就選USB Winchiphead CH341 Single Port Serial Driver這個驅動。) 然後你插入USB串列埠便會有驅動了,然後你可以看到 # usb 1-1: new full speed USB device number 2 using s3c2410-ohci usb 1-1: New USB device found, idVendor=cp2102, idProduct=7523
usb 1-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0 usb 1-1: Product: USB2.0-Ser! ch341 1-1:1.0: ch341-uart converter detected usb 1-1: ch341-uart converter now attached to ttyUSB0 2、可以使用命令ls查詢: # ls -l /dev/ttyUSB0 crw-rw----    1 0        0        188,   0 Oct 12 17:41 /dev/ttyUSB0

3、成功後你可以使用命令列來進行測試,根據以下命令來設定相關引數:

/dev/ttyUSB0 ------------------
#設定通訊的目標串列埠,由於我的筆記本沒有串列埠,使用了USB轉串列埠,所以裝置為/dev/ttyUSB0
set line /dev/ttyUSB0#設定波特率
set speed 115200#關閉通訊監視
set carrier-watch off#設定沒有握手協議
set handshake none#資料流控制為無
set flow-control none#設定保守安全及緩慢的傳輸設定
robust#設定可以傳輸二進位制檔案
set file type bin#限制傳輸檔名
set file name lit#設定接受檔案包的大小為1000位元組
set rec pack 1000#設定傳輸檔案包的大小為1000位元組
set send pack 1000#設定視窗大小
set window 5#---------end------------------------------------這些引數就足夠保證能初步連上OK6410,當然,C-kermit其實還有更多引數,並且在配置裡還可以定製不同情況下的引數,這些屬於題外話,在以後可以慢慢探討。第二步,就是開啟命令進行連線,不過這之前,可以先了解下C-kermit的知識。

(1)、cat /dev/ttyUSB0

但在如果執行上面命令,程式會一直停止在讀取的介面,如果我們的要求是想讀取一段一段的資料,即分批次讀取一定之間內的資料,儲存並處理,那應該怎麼辦呢?我們就需要先用stty將模式設定成raw 並且設定最大連線時間:直接使用Ctrol+C終止當前操作。

stty -F /dev/ttyUSB0 raw speed 9600 min 0 time 10 //設定波特率和延遲時間防止沒接收到資料

(2)然後我們可以把每次讀取到的資料儲存到一個臨時檔案中,然後對其進行處理:

cat /dev/ttyUSB0 >>GPS資料

5、編寫ttyUSB0使用應用程式。

我的程式比較短,我就不獻醜了,誰要是想要,給我說,我給他發。

編寫之後拷貝到開發板上直接執行,

./uart_test 就可以了。