发布时间:2018-09-11
一、NVIC是中断向量表的统称。因为stm32的中断源非常多,在使用时有些中断必须要具有较高的优先级,那么nvic就诞生了,它就是用来配置中断顺序的。
二、打开misc.c文件,可以看到以下列表。
@arg NVIC_PriorityGroup_0: 0 bits for pre-emption priority
* 4 bits for subpriority
* @arg NVIC_PriorityGroup_1: 1 bits for pre-emption priority
* 3 bits for subpriority
* @arg NVIC_PriorityGroup_2: 2 bits for pre-emption priority
* 2 bits for subpriority
* @arg NVIC_PriorityGroup_3: 3 bits for pre-emption priority
* 1 bits for subpriority
* @arg NVIC_PriorityGroup_4: 4 bits for pre-emption priority
* 0 bits for subpriority
1、这个就是stm32根据自身的情况,把中断向量优先级分成了四组,每一组里可以设置抢占式优先级和响应式优先级。
三、基本配置。
1、选定中断向量优先级分组;
2、指定中断源;
3、指定该中断源的抢占式优先级;
4、指定该中断源的响应式优先级;
5、开启中断。
四、程序示例
void NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig (NVIC_PriorityGroup_1);
NVIC_InitStructure .NVIC_IRQChannel =TIM2_IRQn ;
NVIC_InitStructure .NVIC_IRQChannelPreemptionPriority =0;
NVIC_InitStructure .NVIC_IRQChannelSubPriority =0;
NVIC_InitStructure .NVIC_IRQChannelCmd =ENABLE ;
NVIC_Init(&NVIC_InitStructure );
}
热点排行