Android 串口通信異常調試注意事項詳解

前言

Android板外接的硬件,也是Android板需要控制的硬件以下我稱爲負載;

需要準備的:

Android板;負載;Android板和負載的連接線(根據實際物理竄口情況,有很多種);如果有根據負載指令或者協議寫的Demo更好;PC端串口調試助手;

一,串口類型

1.1,這裏說的串口類型是指硬件(物理接口形式)端口的類型,如下圖白色的:

Android板子的串口的硬件接口有:九針串口(分公頭和母頭),還有2.54端子等等,感覺每個廠家的都不一樣,沒有統一標準;

負載串口類型有:九針串口(分公頭和母頭),還有2.54端子等等,這個也是沒有統一的標準;

1.2,這裏說的類型是指電平標準

Android主板上的串口類型有:TTL,RS232,RS485 常用的目前是這些;

負載串口類型有:TTL, RS232,RS485 

二,連線

2.1,要知道Android版上的串口有哪些,每個串口是什麼類型(TTL,RS232,RS485);

2.2,確定外接硬件的串口類型(TTL,RS232,RS485)

2.3,確定連接線中的每根線兩端是否一一對應;例如:Android板子串口中的TX,RX,GND和外接硬件的串口中的TX,RX,GND要一一對應:TX對TX,RX對RX等

2.4,有的時候需要PC端通過USB轉串口來連接到外接硬件;這個時候連線就比較麻煩點,方式多樣;以下列舉我使用過的吧;

2.4.1,通過USB轉RS232的線(一頭是USB一頭是九針串口:分公頭和母頭)此條線稱爲A和九針串口轉外接硬件上的串口接口(物理接口)此線稱爲B,這樣就有兩種組合就是公投和母頭互相組合而成(1,A是九針公頭B是九針母頭組合;2,A是九針母頭B是九針公頭組合);

2.4.2,通過USB轉RS485的線(一頭是USB一頭是九針串口:分公頭和母頭)此條線稱爲A和九針串口轉外接硬件上的串口接口(物理接口)此線稱爲B,這樣就有兩種組合就是公投和母頭互相組合而成(1,A是九針公頭B是九針母頭組合;2,A是九針母頭B是九針公頭組合);

2.4.3,就是USB轉TTL,TTL端直接和負載的硬件的TTL串口相連;

2.5,不管是TTL,RS232,RS485只要電源線(Vcc)和地線(GND)相連造成短路,就會燒芯片;這裏造成短路包括兩個方面一是Android版串口中的Vcc和外接驅動板串口中的GND相連;二是Android版或者外接的驅動板上的串口中Vcc和GND直接相連;

三,調試

3.1,通過Android自己寫的Demo直接通過串口發指令,看負載是否收到信號;注意Demo中的串口號不要寫錯,這個是根據連線來的,連接不同的串口對應的Android應用中的串口號也不同;

3.2,通過PC來調試,這種方式一般都需要找一些工具來調試了,有的負載廠家會給PC端的調試工具,如果廠家沒給,那就自己百度找了比如串口助手啥的;

四,問題

4.1,如果負載接受不到信號一般有以下原因:

1,接線不正確,例如android板上接的是TTL負載接的卻是RS232後者RS485;

2,Android板子RX是否和負載的RX一一對應,也包括TX和GND;

3,有的板子廠家抽風把TX和RX搞反了,這個時候需要自己調一下線,這樣Android板的TX就需要和負載的RX相連,這種情況不常見;實在沒辦法了可以試一下;

4,Android Demo中的指令知否正確,這個就不好驗證,所以就需要先驗證接線是否有問題,就需要PC通過串口調試助手去測試接線連接是否有問題;

5,可能沒有讀寫串口的權限,可以修改權限:adb shell 進入Android系統命令行,cd /dev 進入dev後,ls -l查看設備有的ttyS*串口號,輸入:setenforce 0 關閉防火牆(之前就是不知道這個一直不成功,注意:setenforce命令需要root權限,獲取root權限;再輸入:chmod 777 /dev/ttyS0 修改串口讀寫權限(ttyS*是需要修改的端口要,如果不知道的話,每個都試一下)

4.2,串口、COM口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485是指的電平標準(電信號)。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章