新手上路
- 积分
- 23
- 金钱
- 23
- 注册时间
- 2020-11-5
- 在线时间
- 4 小时
|
void EXTI0_IRQHandler(void)
{
delay_ms(10);
if(WK_UP==1)
{
BEEP=!BEEP;
EXTI_ClearITPendingBit(EXTI_Line0);
}
}
在使用外部中断时我发现一个问题 如果 上面 if语句条件改变为
void EXTI0_IRQHandler(void)
{
delay_ms(10); //消抖
if(EXTI_GetITStatus(EXTI_Line0)!=RESET)
{
BEEP=!BEEP; //蜂鸣器翻转
}
EXTI_ClearITPendingBit(EXTI_Line0); //清除LINE0上的中断标志位
} )
这两种情况下,蜂鸣器的情况是不同的。
第一种情况下 在按下按键后 蜂鸣器会一直响直到下一次按下,
而第二种情况下,蜂鸣器是在按键按下的情况下响,不按的话是不会响的。
就想知道这具体原因是什么?
|
|