打印
[应用相关]

中断处理技巧--连续进入两次中断

[复制链接]
2200|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
muyichuan2012|  楼主 | 2021-5-20 09:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 muyichuan2012 于 2021-5-20 09:41 编辑

中断处理技巧--连续进入两次中断
Q:
在处理中断函数时,有时会出现连续两次进入中断,与实际预期不符。
出现问题时的代码写法一般为,在中断函数最后一句才清中断标志位。
A:
如下图可以知道,这是基于ARM M3/M4内核的一个小知识点。
原因:在中断函数最后一句才清中断标志位时,其实硬件需要时间,可能导致在出中断后,清标志位的硬件行为还未完成,从未导致再次进入中断。
处理方法:
方式1  如下图STF407方法,在中断函数中将清除中断标志位放在前面,
方式2  在中断函数最后一句才清中断标志位,但在清除语句加入若干个NOP指令。
方式1/2的目的都是的清除标志位后,让MCU有足够的时间去执行硬件清除行为,从而避开重复进入中断的非预期行为。





使用特权

评论回复
沙发
muyichuan2012|  楼主 | 2024-7-9 15:45 | 只看该作者
这里是ST写的文档

【应用笔记】LAT1363 浅析单次事件进入两次中断问题.pdf

529.32 KB

使用特权

评论回复
板凳
LEDyyds| | 2024-7-9 16:56 | 只看该作者
确实是一个小知识点

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

206

主题

1932

帖子

30

粉丝