STM32 ARM 嵌入式 NVIC_SetPriority (IRQn_Type IRQn, uint32_t priority)是怎么完成优先级设置的?

2024-12-03 08:04:34
推荐回答(2个)
回答1:

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);               

 NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQChannel;   //通道

 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;//优先级设置0 或者1

 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;   //优先级设置

 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

 NVIC_Init(&NVIC_InitStructure); 

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

NVIC_PriorityGroup_0:则只看NVIC_IRQChannelSubPriority 的值

NVIC_PriorityGroup_1:

NVIC_PriorityGroup_2:

NVIC_PriorityGroup_3:

NVIC_PriorityGroup_4:则只看NVIC_IRQChannelPreemptionPriority 的值

回答2:

正如你所见,systick计时器是Cortex-M3的内核外设,它的中断号小于0,所以它的优先级寄存器在SHP。其他的外部外设的中断号大于等于0,所以它的优先级寄存器在IP