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 Driver3、成功後你可以使用命令列來進行測試,根據以下命令來設定相關引數:
/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 就可以了。