【解决串口数据丢包问题】下位机环形缓冲区+上位机串口生产者-消费者不定长接收(基于keil5和Labview)
一.串口丢包问题描述
串口丢包指数据在串口收发(printf/scanf)过程中,部分字节、帧或完整数据包丢失,表现形式有:
-
接收端数据残缺
- 发送 “123456”,接收端收到 “12 456”(中间字节丢失);
- 发送多帧数据(如
0xAA 0x55 0x01
、0xAA 0x55 0x02
),接收端仅收到第二帧。
-
校验异常
- 带 CRC 校验时,接收端计算 CRC 与发送端不一致,提示 “校验失败”;
- 自定义协议中,帧头 / 帧尾匹配失败(如帧头
0xAA
丢失,导致无法解析数据包)。
-
数据不连续
- 发送高频数据(如 100Hz 传感器数据),接收端数据频率变低(如 80Hz),且时间戳不连续。