F407串口中断接收,会出现字节错乱
发送端每间隔25mS发送三个字节,前两个字节十有效数据,第三个字节是校验。通信中,数据一般情况下正确,几个小时后三个字节顺序会错乱。
这时接收验证就错误了。
检查波特率及时钟配置。 串口线路的连接是否正确,TX和RX引脚是否对应连接? 检查串口线路是否受到外部的电磁干扰或噪声干扰,必要时使用屏蔽线缆,并增加滤波电容以减少干扰。 检查数据位、停止位和校验位的配置是否正确。 波特率不匹配导致的吧。 结帖,启用串口中断和空闲中断接收数据,解决该问题。 中断优先级问题。 增加缓冲区大小,定时检查串口的接收缓冲区,避免缓冲区溢出。 建议在接收端添加校验机制。 检查系统时钟配置是否正确,特别是PLLCLK时钟的配置。 好多热心人回帖不看帖,我谢谢你们 发送端和接收端的波特率设置不一致,导致数据传输速率不匹配 使用循环缓冲区存储接收到的数据,避免缓冲区溢出。 未及时读取数据,可能导致数据丢失或错乱。 未正确清除中断标志位 ISR应该尽可能简短快速,以便尽快返回以处理下一个中断请求。如果ISR中包含耗时操作,可能导致后续数据丢失或错乱。 检查串口信号线的质量,确保没有短路或断路。 如果串口中断的优先级被设置得过低,可能会被其他更高优先级的中断打断,导致数据处理不及时,进而引起字节丢失或错乱。 避免因电压波动导致通信错误。