阿波罗STM32F767 22章 void RTC_WKUP_IRQHandler(void) 中的if判断是否多余?

2019-07-20 08:14发布

//RTC WAKE UP中断服务函数
void RTC_WKUP_IRQHandler(void)
{   
    static u8 led1sta;        
    if(RTC->ISR&(1<<10))//WK_UP中断?
    {
        RTC->ISR&=~(1<<10);    //清除中断标志
        LED1(led1sta^=1);
    }   
    EXTI->PR|=1<<22;    //清除中断线22的中断标志         
}

上面的代码中的对WK_UP中断的if判断是否多余,因为这个函数只有可能在实时时钟wakeup发生的情况下才可能有中断发生,感觉这个wake up判断有点画蛇添足。
版主  上面的if是多的吗?

并且正点原子很多中断服务函数中都有 if 判断,有的中断函数有多个触发条件,在函数中就需要对触发条件作出判断并进行相应的处理;如果中断函数只有一个触发条件,这种判断应该就没有必要。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。