NVIC_PriorityGroupConfig的问题

2019-07-20 15:35发布

中断能够产生。中断初始化   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //组1/*
   NVIC_PriorityGroup_1: 1 bits for pre-emption priority
  *                                3 bits for subpriority
*/
   NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel;  
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; //这里设置为2,会有什么问题?  
    NVIC_InitStructure.NVIC_IRQChannelSubPriority =1;  
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;  
    NVIC_Init(&NVIC_InitStructure);  






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
whyviking
2019-07-20 16:18
本帖最后由 whyviking 于 2017-4-4 17:58 编辑

在NVIC初始化函数中,是根据之前设置优先级分组先计算掩码,然后用掩码和输入参数一起来运算得到优先级参数。比如你把中断配置为分组1 ,这样Init函数内部就会通过位移运算。只取NVIC_IRQChannelPreemptionPriority 的最低位
和NVIC_IRQChannelSubPriority 的低3位。也就是说你这个函数可以正常运行但抢占优先级不是2而是0。

一周热门 更多>