使用C# serialport类,用委托进行串口数据接收,接收时需要数据处理和绘图,怎样同步数据防止丢失?

2025-03-10 14:19:10
推荐回答(1个)
回答1:

用RecieveBytesThreshold=47是不靠谱的,实际调试时你会发现有时候缓冲区不到47字节就触发中断,所以一定要把RecieveBytesThreshold设为默认的1。即使你把他设成1,也会发现触发中断时缓冲区里面字节数还是可能大于1,不过这样能确保数据接收完整(47个你全部能收到)。
数据接收与处理逻辑要在RecieveBytesThreshold=1的基础上来建立,比如你可以在每次接收中断中把缓冲区的字节以续接的方式存在一个暂存数组里,等到拼满47个,就统一做一次处理。