EXTI15_10外部中断互相影响的问题

2019-07-21 07:27发布

用PD11和PD12做按键外部中断,初始化为下拉输入,下降沿触发;按键一端直接接IO,另一端接地;有时候两个中断会相互影响,按PD11的时候,有时候会打印Net Close!,反之也是这个问题
void EXTI15_10_IRQHandler(void)
{
        delay_ms(10);//消抖
        if(EXTI_GetITStatus(EXTI_Line11))              //PD11
        {
                EXTI_ClearITPendingBit(EXTI_Line11);
                Net_Close_Led = 0;
                LCD_ShowString(150,199,72,24,24,"      ");//显示"  "
                LCD_ShowHZ_24(165,199,13);  //显示开
                printf("Net Open! ");
        }
       
        if(EXTI_GetITStatus(EXTI_Line12))      //PD12
        {
                EXTI_ClearITPendingBit(EXTI_Line12);
                Net_Open_Led = 0;
                LCD_ShowString(150,199,72,24,24,"      ");//显示"  "
                LCD_ShowHZ_24(165,199,14);  //显示关
                printf("Net Close! ");               
        }

}
大侠帮忙看看啊,,


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
warship
1楼-- · 2019-07-21 07:37
消抖后再判断标志不妥,失去了消抖的意义,
有抖动的情况下中断标志一定还在,100%会进行中断处理,执行后续动作。
所以应该改为判断引脚电平状态。
七品男人
2楼-- · 2019-07-21 13:04
 精彩回答 2  元偷偷看……

一周热门 更多>