stm32 优先级分组

 

一、中断优先级配置的函数:

1. NVIC_IRQChannelPreemptionPriority                            配置抢占优先级

2.NVIC_IRQChannelSubPriority                                        配置响应优先级

 

二、抢占优先级与响应优先级的描述:

1、抢占优先级不同,会涉及到中断嵌套,抢占优先级高的会优先抢占优先级低的,优先得到执行。(注意:优先级数字越小,优先级越高)

2、抢占优先级相同,不涉及到中断嵌套,响应优先级不同,响应优先级高的先响应。(例如:两个中断同时响应,这里就会先执行响应优先级高的那个中断)(注意:优先级数字越小,优先级越高)

3、抢占优先级和响应优先级都相同,则比较它们的硬件中断编号,中断编号越小,优先级越高。(硬件中断编号从中断向量表当中查看)
 

三、中断优先级分组:

 

四、 组别:0>1>2>3>4

    组别优先顺序(第0组优先级最强,第4组优先级最弱):

NVIC_PriorityGroup_0  > NVIC_PriorityGroup_1 > NVIC_PriorityGroup_2 > NVIC_PriorityGroup_3 > NVIC_PriorityGroup_4

 

五、抢占优先级和响应优先级执行过程举例:

 ①   实验现象:中断B(C)执行时,A中断到来,则A打断B(C)中断,执行A中断(即中断嵌套)。

    结果说明:0级抢占优先级>1级抢占优先级,以此类推,0>1>2.......>15

    拓展:抢占优先级最多可以嵌套15次

  ② 实验现象:中断B(C)执行时,C(B)中断到来,则执行当前的中断B(C),执行完当前中断B(C)后再执行中断C(B)。

    结果说明:当B(C)中断的抢占优先级等级相同时,执行中的中断B(C)不能被中断C(B)打断,必须等待当前中断B(C)执行完再执行中断C(B)。与响应优先级无关。

  ③  现象:当B、C中断同时到来时,首先响应中断B。

     结果说明:响应优先级大小:0>1>2......>15

  ④  如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。

 

 

 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Julius_world

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值