定时器中断判断按键状态问题

2019-07-21 00:35发布

新手求教(中断用的是延时,高手勿喷)
在学习定时器中断的时候想写按键扫描,WK_UP按下控制BEEP响,按下KEY0,LED1状态翻转,按下LED0状态翻转
中断服务函数如下,现在问题是KEY0和KEY1按下正常,当按下WK_UP时候蜂鸣器间断响,松开WK_UP之后KEY0和KEY1
都不起作用了,主函数写的是串口不间发送t++,j接上串口之后,发现按下WK_UP之后,串口停止发送了,
只有在WKW_UP按下期间才能发送数据,新手不懂的太多
求教大家,多谢了
void TIM1_UP_TIM10_IRQHandler(void)
{          
if(TIM1->SR&0X0001)//溢出中断
{

if(WK_UP==1)
{
delay_ms(30);
{
if(WK_UP==1) 
BEEP=!BEEP; 
while(!WK_UP); 

}
}

else if(KEY0==0)
{
delay_ms(30);
{
if(KEY0==0) 
LED1=!LED1
while(!KEY0);
}
}
else if(KEY1==0)
{
delay_ms(30);
{
if(KEY1==0)
LED0=!LED0; 
while(!KEY1);
}
}


TIM1->SR&=~(1<<0);//清除中断标志位    
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。