當前位置:編程學習大全網 - 編程軟體 - C# serialport類編寫串口通信程序,無法接收全部數據!

C# serialport類編寫串口通信程序,無法接收全部數據!

問題應該是出在這句:

bytesRead = serialPort.Read(BRecieve, 0, bytesToRead);

樓上的說法有點意思,但是不完全透徹。

其實問題在於串口返回數據時,它返回的速度可能不會太快,而程序執行是非常快的。

也就是說,當執行到Read語句時,串口根本沒來得及返回那麽多的數據,如妳說的,只返回了9個字節。即便妳指定bytesToRead大小也沒有用。

解決辦法:只能通過控制代碼來實現妳想要的功能,我認為有兩種方案可供使用:

壹、設置壹個大小為59的緩存,寫壹個while循環,只有從串口讀滿59個字節的數據時才退出while循環,否則繼續讀取。

二、思想跟第壹種類似,只是不寫while循環,利用調用函數思想,當存滿59個字節時,返回true,否則返回false,繼續讀取串口數據。

希望對樓主有用。

  • 上一篇:西門子車床數控系統802D和808D有什麽區別?
  • 下一篇:如何選擇少兒編程培訓機構
  • copyright 2024編程學習大全網