大学生
最后登录1970-1-1
在线时间 小时
注册时间2020-5-4
|
#define KEY GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)
#define KEYA_SPEED1 100 //长按的时间长度(单位10mS)
#define KEYA_SPEED2 10 //双击的时间长度(单位20mS)
int main(void)
{
u8 a=0,b,c=0;
LED_GPIO_Config();
KEY_GPIO_Config();
BEEP_GPIO_Config();
while(1){
if(KEY){ //检测按键是否按下
Delay_ms(20); //延时去抖动
if(KEY)
{//判断长短键
while((!KEY)&&c<KEYA_SPEED1){ //循环判断长按,到时跳转
c++;
Delay_ms(10); //长按判断的计时
}
if(c>=KEYA_SPEED1){ //长键处理
//长按后执行的程序放到此处
LED_WHITE;//LED控制
while(!KEY);
}else{ //单击处理
for(b=0;b<KEYA_SPEED2;b++){//检测双击
Delay_ms(20);
if(!KEY){
a=1;
//双击后执行的程序放到此处
LED_GREEN;//LED控制
while(!KEY);
}
}
if(a==0){ //判断单击
//单击后执行的程序放到此处
LED_PURPLE;//LED控制
}
}
a=0;c=0; //参数清0
}
} //按键判断在此结束
}
}
|
|