本帖最后由 smartdog_1 于 2014-7-18 18:01 编辑
while(EXTI_GetITStatus(EXTI_Line0) != RESET)
如果标志位没有手动清除,中断状态寄存器会保持,这样你循环读的时候,结果总是一样的。
现在,跳出循环的唯一条件是所以跳出循环之后,if(count>=2)
long_time=1;
肯定会执行的
楼上说的很对,建议用定时器或者Systick判断长按时间。
有按键按下,消抖,记录按下的键值。在主循环中通过Systick或者Timer判断当前逝去的时间,进而判断长按键
|