stm32应用开发|串口中断异常进入情况分析

STM32串口接收中断溢出问题解决(不具有普适性)

  1. 情况说明
    串口通信周期20ms,波特率460800,根据私有协议每包数据需要写入U盘,在这种情况下,串口接收状态机放在滴答定时中断里面(为了写入每包数据的时间戳跟通信周期可以一致)。U盘写函数放在main函数while(1)里。
  2. 问题描述
    串口在接收到几包数据以后,串口没有数据的情况下也会进入中断函数导致主程序不再运行。
  3. 解决方法
    在网上搜索了关键字“串口没有数据却一直进中断函数”发现现象如网上所说,串口在接收数据过多时,会出现串口溢出错误,并进入溢出中断(ORE中断)。错误产生原因以及解决方法按此链接STM32串口接收中断溢出问题解决博主所说尝试后发现并没有解决问题,最终我选择数据处理机制是在中断里接收一个字节处理一个字节,问题解决!!!
  4. 【stm32应用开发|串口中断异常进入情况分析】后续发现
    后来发现还是会出现进中断问题,奇怪啊 !一个串口好的一个串口没好。呵,是ORE中断忘记打开!!!

    推荐阅读