開發環境redhat,程式功能接收控制命令然后通過串口轉發到下位機,周期大概640毫秒轉發一次。串口波特率115200,沒有流控制,停止位1,校驗位8,問題是每過一段時間,查看串口write函式執行時間長達三到五毫秒,下位機接收命令正常,各位感覺可能我哪里出了問題
uj5u.com熱心網友回復:
windows中如果打開串口時不設定為overlapped模式,write發送資料時會等待發送完成再回傳,你這個應該也是相同的原因,需要改為異步讀寫。uj5u.com熱心網友回復:
輸出緩沖區滿了,上位機發得太快太多,或者下位機收得太慢太少。任何收發兩端速度不一致的通訊,都需要在它們之間使用一個足夠大的FIFO緩沖區。
對任何FIFO緩沖區的使用,都需要仔細考慮接收端接收時超時無資料和發送端發送時FIFO緩沖區已滿這兩種情況下該如何做。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/263492.html
標籤:其它技術問題
上一篇:2021最新版12306網站selenium實作自動化登錄
下一篇:C++當中GOTO
