2019-07-21 04:17发布
hougeqvjing 发表于 2018-8-2 16:31 我的意思是,比如我选择group0,那么因为#define group0 0x700。所以我觉得uint32_t PriorityGroupTmp = ...
最多设置5个标签!
我所使用的函数体是这样的(供参考):
//设置NVIC优先级组,一般程序只设一次组,优先组确定后,要根据组的要求,为系统的每一个中断确定其在组中的地位
//输入参数NVIC_Group: NVIC分组 0~4 总共5组
void MY_NVIC_PriorityGroupConfig(u8 NVIC_Group)
{
u32 temp,temp1;
temp1=(~NVIC_Group)&0x07;//取后三位 运算结果是0-111 1-110 2-101 3-100 4-011
temp1<<=8; //运算结果为0x700/600/500/400/300其中的位10:8就是设置值
temp=SCB->AIRCR; //读取先前的优先级分组设置
temp&=0X0000F8FF; //清空先前分组F8FF=11111000 11111111,正好清除BIT10:8
temp|=0X05FA0000; //写入钥匙,规定的套路
temp|=temp1;
SCB->AIRCR=temp; //设置分组
}
一周热门 更多>