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