C# 串口通信 被动接收 少数据问题 erwa.cn

参考微软serialport类的手册:SerialPort.ReadChar 方法 (System.IO.Ports) | Microsoft Learn

不同设备,收数据的逻辑不一样。目前二娃只发现3种场景。

场景1:有指定结束字符,比如换行符(或者其他字符)。

在SerialProt_ReceivedEvent事件中用

string msg = serialport?.ReadLine(); //\r\n换行符处理

场景2:没有特殊固定的结束符。固定长度。比如123个字符。

serialport.ReceivedBytesThreshold = 123;

场景3:没有特殊固定的结束符。固定长度。比如123个字符。

在SerialProt_ReceivedEvent事件中用

Thread.Sleep(200);
if (serialport.BytesToRead != 123) return;

byte[] buffer = new byte[123];
serialport?.Read(buffer, 0, 123);

以上针对,被动接收频率不是很快的情况。

如果很快的那种,最好是固定结束符号。比如跳屑检测 每秒10条数据。每条数据固定换行符结尾。

erwa.cn

二娃备忘

阅读剩余
THE END