今天学习stm32外部中断的时候,中断函数代码如下: printf("enter exti0");//这里很容易进来
delay_ms(10);//消抖
if(KEY2==0) //按键KEY2
{
printf("really exti0");//这里不容易进来,说明防抖很必要
LED0=!LED0;
}
//清除LINE2上的中断标志位,如果不写这句话,main函数里不执行
//原因是会不停的进入中断导致main函数无法执行
EXTI_ClearITPendingBit(EXTI_Line2);
蓝色代码如果屏蔽掉,发现主函数无法执行。
原因是如果不手动清除中断标志位,则会不停的进入中断,主函数自然无法执行了。 |