一、NVIC是中斷向量表的統(tǒng)稱(chēng)。因?yàn)閟tm32的中斷源非常多,在使用時(shí)有些中斷必須要具有較高的優(yōu)先級(jí),那么nvic就誕生了,它就是用來(lái)配置中斷順序的。
二、打開(kāi)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、這個(gè)就是stm32根據(jù)自身的情況,把中斷向量?jī)?yōu)先級(jí)分成了四組,每一組里可以設(shè)置搶占式優(yōu)先級(jí)和響應(yīng)式優(yōu)先級(jí)。
三、基本配置。
1、選定中斷向量?jī)?yōu)先級(jí)分組;
2、指定中斷源;
3、指定該中斷源的搶占式優(yōu)先級(jí);
4、指定該中斷源的響應(yīng)式優(yōu)先級(jí);
5、開(kāi)啟中斷。
四、程序示例
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 );
}