W806接收不定長度的UART數據,出現一包數據分為兩包接收,如何做到一包數據可以一次接收的。如果采用串口空閑中斷進行判斷,如何使用方法的,有例程嗎
查看更多
不影響使用啊,數據流本身不會丟,利用自定義的數據帧格式,一般都有長度信息,判斷沒接收完成就等下一次接收完成再解析。沒有串口空閑中斷,只有一個簡單的接收超時中斷UART_INTS_RTO,也可以用這個來判斷,前提是發送方不會間斷,如果被置位了,就調用接收完成中斷回調。
一般數據收發都是流式傳輸,正確的方法是uart接受到ringbuffer,然後再去處理,wm_iot_sdk已經幫你做好ringbuffer,你只需要在每次中斷回調裡挨個兒解析frame就好了,所以你得寫好正確的parser
發布 問題
分享 好友
手機 浏覽
回到 頂部