新手上路
- 积分
- 35
- 金钱
- 35
- 注册时间
- 2013-12-27
- 在线时间
- 2 小时
|
4金钱
void MY_NVIC_PriorityGroupConfig(u8 NVIC_Group)
{
u32 temp,temp1;
temp1=(~NVIC_Group)&0x07
temp1<<=8;
temp=SCB->AIRCR;
temp&=0X0000F8FF;
temp|=0X05FA0000;
temp|=temp1;
SCB->AIRCR=temp;
}
void MY_NVIC_Init(u8 NVIC_PreemptionPriority,u8 NVIC_SubPriority,u8 NVIC_Channel,u8 NVIC_Group)
{
u32 temp;
MY_NVIC_PriorityGroupConfig(NVIC_Group);
temp=NVIC_PreemptionPriority<<(4-NVIC_Group);
temp|=NVIC_SubPriority&(0x0f>>NVIC_Group);
temp&=0xf;
NVIC->ISER[NVIC_Channel/32]|=1<<NVIC_Channel%32;
NVIC->IP[NVIC_Channel]|=temp<<4;
}
temp1=(~NVIC_Group)&0x07;这里为啥要取反
|
最佳答案
查看完整内容[请看2#楼]
看一下这个,回答很好 https://www.cnblogs.com/qigaohua/p/5324030.html
|