串口中断异常进入情况分析

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

  1. 情况说明
    串口通信周期20ms,波特率460800,根据私有协议每包数据需要写入U盘,在这种情况下,串口接收状态机放在滴答定时中断里面(为了写入每包数据的时间戳跟通信周期可以一致)。U盘写函数放在main函数while(1)里。

  2. 问题描述
    串口在接收到几包数据以后,串口没有数据的情况下也会进入中断函数导致主程序不再运行。

  3. 解决方法
    在网上搜索了关键字“串口没有数据却一直进中断函数”发现现象如网上所说,串口在接收数据过多时,会出现串口溢出错误,并进入溢出中断(ORE中断)。错误产生原因以及解决方法按此链接STM32串口接收中断溢出问题解决博主所说尝试后发现并没有解决问题,最终我选择数据处理机制是在中断里接收一个字节处理一个字节,问题解决!!!

  4. 后续发现
    后来发现还是会出现进中断问题,奇怪啊 !一个串口好的一个串口没好。呵,是ORE中断忘记打开!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值