在STM32F103C8T6中,NVIC使用一个4位的中断优先级寄存器来管理中断优先级。这四位中断优先级共有16个等级,编号从0到15,其中0为最高优先级,15为最低优先级。
-
Preemption Priority Group(抢占优先级组):这是一个全局设置,用于将中断优先级分为抢占优先级和子优先级。这个设置决定了优先级寄存器中的位分布。在STM32F103C8T6中,可以选择将中断优先级分为0位抢占优先级和4位子优先级(0位抢占优先级 + 4位子优先级 = 4位中断优先级寄存器)。
-
中断优先级寄存器:在STM32F103C8T6中,这个寄存器是一个8位的寄存器,用于设置每个中断的优先级。这8位被分成两部分:高4位用于抢占优先级,低4位用于子优先级。抢占优先级决定了中断响应的紧急程度,而子优先级决定了当多个同样抢占优先级的中断同时触发时的响应顺序。
-
优先级分配:在设置中断优先级时,可以根据应用程序的需求灵活分配。通常情况下,抢占优先级设置为越低的值,表示优先级越高,而子优先级设置为越高的值,表示优先级越高。例如,如果将一个中断的抢占优先级设置为1,而另一个中断的抢占优先级设置为2,那么当两者同时触发时,抢占优先级为1的中断将被优先响应。