串口通信时的问题

串口通信时的问题

串口通信时的问题

1、串口发送数据帧时,尽量不要被长时间的其他中断打断

串口发送:CPU将待发送数据写入串口TDR,数据被转移到移位寄存器后,即使此刻出现其它中断,发送数据也不会出错,因为已经到硬件底层了。

在多个字节数据被写入TDR进行传输时,这个过程可能被其它中断打断,如果中断执行时间较长(超过串口当前波特率传输2个字节时间),则会出现帧字节间延时较长,**接收方则可能出现所谓断帧数据收不全的情况(尤其是采用DMA+空闲中断)。**所以传输时要注意这个环节!!!最好是采用示波器抓波形看看。

串口接收:因移位寄存器将RX线采集数据写入串口接收数据寄存器RDR,因为底层硬件将数据写入RDR,所以即使接收数据过程中出现其它中断,也不会导致接收数据本身错误,而只会稍微晚点接收,但如果晚的时间较长,则出现溢出错误ORE。

同理SPI发送接收也类似,发送过程中不能被中断太久!!!

2、ORE错误

我们在MCU系统负载较重(串口收发频率高、多个中断存在(定时器中断、外部中断、DMA中断、串口接收中断等)),很容易出现串口溢出错误(ORE),这种错误的表现形式是:莫名其妙卡死在串口中断中。

接收方空闲中断:不可被高优先级中断长时间打断,否则会被认为是空闲中断;中断不可避免时,一定要缩短高优先级中断处理时间

(处理不同中断标志)。

❈ ❈ ❈

相关文章

✧ ✧ ✧
2024年五款常用照片打印软件的比较分析
365365bet官

2024年五款常用照片打印软件的比较分析

📅 07-09 👁️ 6393
越南大品牌、高品质、好味道的Top4月饼
365365bet官

越南大品牌、高品质、好味道的Top4月饼

📅 06-29 👁️ 7642
【网络连接】ping不通的常见原因+解决方案,如何在只能访问网关时诊断,并修复IP不通的问题