进来讨论一下,NVIC寄存器组中的中断挂起SETPEND与消除CLRPEND,与外部中断挂起寄存器EXTI_PR有何关系?

2019-07-21 04:17发布

本帖最后由 warship 于 2018-7-27 19:32 编辑

如题,讨论一下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
34条回答
warship
2019-07-25 01:03
本帖最后由 warship 于 2018-8-2 18:35 编辑
hougeqvjing 发表于 2018-8-2 16:31
我的意思是,比如我选择group0,那么因为#define group0  0x700。所以我觉得uint32_t PriorityGroupTmp = ...

我所使用的函数体是这样的(供参考):
//设置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;  //设置分组                                                         
}

一周热门 更多>