1. 程式人生 > >Android—串列埠相關(2.串列埠除錯時出現的亂序、亂碼、缺資料問題)

Android—串列埠相關(2.串列埠除錯時出現的亂序、亂碼、缺資料問題)

自己在開發除錯過程中走了很多的坑,找了很多的文章,總結起來希望以後再碰到的時候能想起來,

其中參考了大佬的相關回答:大佬的連結

使用谷歌的串列埠除錯工具有時會出現亂序和亂碼以及缺資料的現象亂序問題有以下幾種出現的可能:1.在配置相關串列埠時配置了多個串列埠原因:導致多個串列埠同時開啟,串列埠之間搶佔資源無法及時接收到資訊。解決辦法:確認配置了幾個串列埠,並且不能迴圈開啟串列埠。2.在配置相關波特率時沒有統一波特率原因:波特率沒有統一無法,準確接收資訊。解決辦法:確認與連線裝置的波特率是否統一。3.在呼叫下一個串列埠時沒有關閉之前的串列埠原因:導致了同時開啟了2個或者多個串列埠,串列埠之間會搶佔資源,導致當前想使用的串列埠無法及時接收到資料。解決辦法:保證在開啟下一個串列埠時關閉前一個串列埠。4.使用了錯誤的底層程式碼,導致接收資料時產生了錯誤。原因:未知解決辦法:更改底層檔案 SerialPort.c(直接換一份程式碼)亂碼現象主要由以下幾個方面導致的:
1.裝置與程式設定的波特率不同,原因:波特率差值過大時程式無法解析傳輸資料解決辦法:統一波特率2.裝置傳輸資料時使用了程式無法解析的型別原因:由於都是通過位元組流傳輸的,程式中需要轉成相對應的型別。解決辦法:統一型別

缺資料就比較尷尬了:

缺資料主要是由串列埠與裝置的連線不穩定導致的,主要是因為連線線鬆動導致。如果出現缺資料問題,首先要去確認連線線是否牢固。