今天想到了一个问题:假如STM32的某个中断被掩蔽(通过BASEPRI寄存器),被掩蔽期间如果该中断两次(或多次)触发,等解除掩蔽之后该中断的ISR(中断服务程序)会执行几次呢?会不会累计?
然后我用定时器中断测试了一下,结果显示该定时器中断的ISR并不会多次执行,只执行了一次。
原因:某个中断被掩蔽期间如果触发了该中断那么这个中断会被悬起(通过SETPEND寄存器自动悬起),但是只是标记了悬起的状态,并不会记录悬起的次数。
以上结论是在Cortex-M3上测试得出的。
(个人观点如有错误、不当之处欢迎指正)
本文探讨了STM32中,当某个中断被掩蔽时,若多次触发该中断,解除掩蔽后ISR是否会累计执行的问题。实验结果表明,定时器中断ISR不会多次执行,仅执行一次。原因是中断被悬起但不记录悬起次数。
3585

被折叠的 条评论
为什么被折叠?



