各位好,現在小弟有一個關于AT指令的問題,想咨詢一下大佬,希望不吝賜教哈。我想用AT指令通過串口和一個設備通信,原本是打算發送一個AT指令后等待讀取結果。但是這個設備會有一些主動上報的AT指令,這樣我就不得不開一個執行緒來讀取這些主動上報的指令。這樣就有一個問題出現了:這樣有可能在發送命令以后讀取結果時把主動上報的資料也讀走了。各位有沒有遇到過這種類似的問題?是怎么解決的呢
uj5u.com熱心網友回復:
對AT指令的回傳不會和主動上報的內容一樣的,他們訂協議時會考慮到這些的uj5u.com熱心網友回復:
除了像樓上所說的注意AT指令的區別外。對于這種有應答/或需要重發的指令,使用回呼函式的方式。設定定時器(超時時間和超時重發的次數),注冊對應接收指令的回呼函式。如果接收到相應的應答,則在回呼中取消定發送的內容。否則時間到重新發送指令。。。。uj5u.com熱心網友回復:
所有的讀取都使用一個執行緒,讀取后進行分辨是什么性質的資料,再做分別處理uj5u.com熱心網友回復:
感謝感謝感謝!收益匪淺,
uj5u.com熱心網友回復:
一個執行緒的話,主動上報的資料怎么搞呢
uj5u.com熱心網友回復:
根據前導資料不同做不同處理轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/143199.html
標籤:單片機/工控
