b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

nvic_configuration_configuration手机_华硕cpu configuration

电脑杂谈  发布时间:2017-05-16 05:00:45  来源:网络整理
nvic_configuration

关于STM32 NVIC配置的解释

大部分学习用的开发板在配置各个外设的中断优先级时,习惯在每个外设的初始化文件里都进行NVIC group配置,例如在ADC和Usart都有NVIC的配置如下:

ADC中:

void ADC_NVIC_Configuration(void)

{

NVIC_InitTypeDef NVIC_InitStructure;

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

NVIC_InitStructure.NVIC_IRQChannel =ADC1_2_IRQn; //开启ADC_Channel8中断

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

}

Usart中:

void NVIC_Configuration(void)

{

/* 结构声明*/

NVIC_InitTypeDef NVIC_InitStructure;

/* Configure the NVIC Preemption Priority Bits */

/* Configure one bit for preemption priority */

/* 优先级组 说明了抢占优先级所用的位数,和响应优先级所用的位数 在这里是0, 4

0组: 抢占优先级占0位, 响应优先级占4位

1组: 抢占优先级占1位, 响应优先级占3位

2组: 抢占优先级占2位, 响应优先级占2位

3组: 抢占优先级占3位, 响应优先级占1位

4组: 抢占优先级占4位, 响应优先级占0位

*/

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);

NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; //设置串口1中断

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //抢占优先级 0

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;//子优先级为0

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能

NVIC_Init(&NVIC_InitStructure);

}

但实际上这种配置是不合理的,即如果假设两个NVIC配置的中断组不同,如果其中一个外设引用了最后配置中断组允许的优先级之外的,可能会出现冲突。和老师讨论过后,他认为如果之前初始化的优先级较后面优先级组设置的不合理,前面的中断可能就不能响应,BUT。。。nvic_configuration。。

我实验时发现,无论如何更改这两个优先级配置顺序,貌对我的程序结果没有影响。

当然老师的建议是在工程中建立systemconfig的文件进行中断优先级组及时钟等的配置,即中断优先级组配置只出现一次,


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-47386-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      每日福利
      热点图片
      拼命载入中...