一、中断优先级配置的函数:
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
④ 如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。
一、中断优先级配置的函数:
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
④ 如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。
举报