外部中断怎么打断正在执行的其他外部中断服务函数

2019-07-20 22:52发布

用的是STM32F103ZE的单片机
共设有3个外部中断,其中一个抢占优先级为0x02,另外两个中断的抢占优先级均为0x01。
当抢占优先级为0x01的外部中断服务函数进入到死循环时,抢占优先级为0x02的中断无法打断优先级为0x01的中断服务函数(表现为优先级为0x02的中断服务函数不被执行)
我个人猜测是因为死循环中有delay_ms()延时函数,该函数又使用了定时器中断,所以外部中断无法打断定时器中断
我不知道这样子猜测对不对,有没有大神来指教一下下捏??告诉一下我该怎么打断死循环??
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
醉梦魂
1楼-- · 2019-07-21 08:50
0x01的优先级不是比0x02的优先级高吗?
aozima
2楼-- · 2019-07-20 23:44
M系列的优先级分2个,一个抢占优先级,这个才会有打断。

另外一个优先级只是在多个排队时,取最高那个。而不会打断。
LBean
3楼-- · 2019-07-21 02:55
aozima 发表于 2019-7-10 18:34
M系列的优先级分2个,一个抢占优先级,这个才会有打断。

另外一个优先级只是在多个排队时,取最高那个。 ...

对啊,但是现在问题是外部中断怎么去打断delay函数里面的定时器中断
醉梦魂
4楼-- · 2019-07-21 09:22
 精彩回答 2  元偷偷看……
Sun_Fly
5楼-- · 2019-07-21 12:20
中断进入死循环?

一周热门 更多>