外部中断的小问题

2019-07-20 21:34发布


void EXTI4_IRQHandler(void)
{
        delay_ms(10);       
        if(KEY0==0)         
        {                                 
                LED0=!LED0;       
                LED1=!LED1;       
        }                 
         EXTI_ClearITPendingBit(EXTI_Line4);
}

将上面程序改成
void EXTI4_IRQHandler(void)
{
        delay_ms(10);       
        if(KEY0==0)         
        {                                 
                LED0=!LED0;       
                LED1=!LED1;
                EXTI_ClearITPendingBit(EXTI_Line4);        
        }                 
         
}会造成按键不灵了,我理解的中断清除标志位不是需要程序进入中断才需要清除么?当按键按下才会进入中断服务程序,而按键按下中断清除位不论放在IF函数里面还是外面都会执行啊,   为什么放里面就出错了?求解?

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