stm32f4串口通信中问题

2019-07-20 21:29发布

请教一个问题,在stm32f4串口通信中,如果上轮数据还未处理,有收到了新数据,在串口接收中断处理代码中,如果既不读取USART_DR,也不将改为写0,函数会反复进入这个中断吗?大家有没有办让串口不丢失数据且处于等待状态,直到上轮数据处理完成,再将其写入缓冲区,重启正常的数据接收?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
zzx499
2019-07-20 21:38
如果使用中断模式读取串口数据,在串口接到数据后会进入中断函数,此时不读DR寄存器,也不对RXNE位清零,就会产生上溢错误,直到对RXNE位清零前,DR寄存器是一直接不到新数据的。

你可以在中断函数里定义一个标志位,在主循环里判断标志后进行数据处理,但这个要串口接收数据的速度远小于主循环的速度。或者你用DMA方式进行。

一周热门 更多>