当前位置:首页 > 单片机 > 单片机
[导读]一、NVIC是中断向量表的统称。因为stm32的中断源非常多,在使用时有些中断必须要具有较高的优先级,那么nvic就诞生了,它就是用来配置中断顺序的。二、打开misc.c文件,可以看到以下列表。 @arg NVIC_PriorityGroup_

一、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 );

}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭