//按键代码
if(!KEY0)
{
delay_ms(10);
if(!KEY0)
{ while(!KEY0&&c<PRESSCNT)
{
c++;delay_ms(20);
}
if(c>=PRESSCNT)
{
//长按
LED0=1; //先点亮红灯
LED1=1; //先点亮绿灯
while(!KEY0); //等待松开
}else{ //不是长按
for(b=0;b<DBCNT;b++)
{
delay_ms(10);
if(!KEY0)
{
a=1;
LED0=0; //先点亮红灯
//双击
while(!KEY0);
}
}
if(a==0)
{
//单击
LED1=0; //先点亮绿灯
}
}
a=0;c=0;
}
}
//头文件定义
#define PRESSCNT 60
#define DBCNT 50 //双击间隔
#define KEY0 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)//读取按键0
正点原子STM32开发板实现按键单击,双击,长按程序。
最新推荐文章于 2024-07-17 16:05:27 发布