[求助] 开总中断前已经清除了标志位但还是进中断怎么决解呢

z45217   2020-7-8 08:42 楼主

如题,我使用了外部中断1,然后在程序里有地方使用了

__disable_irq();   // 关闭总中断    

。。。。。。

EXTI_ClearITPendingBit(EXTI_Line1); //清除中断标志位

__enable_irq();    // 开启总中断

清除标志位了,但是如果关闭期间有按键,在开启总中断后还是会马上进中断服务程序 有什么办法解决吗 

回复评论 (3)

NVIC 中对应的 IRQ pending 标志也要清。

EXTI 向 NVIC 的中断请求撤消之后,IRQ handler 没有执行之前,pending状态还依然存在。

点赞  2020-7-8 12:27
引用: cruelfox 发表于 2020-7-8 12:27 NVIC 中对应的 IRQ pending 标志也要清。 EXTI 向 NVIC 的中断请求撤消之后,IRQ handler 没有执行之前 ...

好,谢谢我试试看

点赞  2020-7-8 16:06

除了清标志位还需要清下事件

点赞  2020-7-13 09:33
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复