|
發布時間: 2018-4-27 21:37
正文摘要:在使用單片機測試一款芯片的時候,使用串口接收芯片發送的數據,數據總是讀不對。串口通訊部分沒問題,問題是如何找到幀頭??有效數據如何保存? 會的大佬提供一下思路或者代碼,,感激不盡 |
betar00 發表于 2020-2-18 16:16 我可以搞定 |
| 開頭應該是55 5A,讀取一個字節是55再度一個是5a就開始讀,直到一個數值為67時停止,可以依次在數組里保存,需要那個就把他取出來 |
| 哪個大神可以搞定?求分享 |
| 同樣的困惑,,,大多的教程都是講解用串口助手發送 一個字節,,,,沒有講解發送大批量數的,,,,,困惑中 |
xiaqjchint 發表于 2018-9-14 08:19 我現在也遇到同樣的情況,不知從何下手 |
| 你好,你的問題解決了嗎? |
| 你好,這個串口問題解決了嗎? |
| 建立一個接收數組,根據自己的需要處理接收數組的數據即可。樓上說的很詳細 |
| 這個應該是自定義通訊協議,1、2字節是數據頭3~23是有效數據,24是數據尾,用于校驗數據傳輸是否正確。定義一個數組,通常在接收到數據時對第1、2字節判斷,如正確連同繼續接收的字節按序保存在緩存數組,否則拋棄繼續等待接收。此時對保存在緩存數組里的數據進行校驗,現在還沒有看出來這個數據格式的校驗算法,通常有累加校驗和的校驗方法。把前面所有字節的數據相加,超過一個字節的溢出部分自動丟棄,或把前面所有字節的數據相加后取反再+1,超過一個字節的溢出部分自動丟棄。解析數據就比較簡單,緩存中提取3或2個字節的有效數據用左移16+左移8位+低8位的方法還原成24位或16位數據。 |