STM32按键

按键扫描有两种思路
- 支持连按:举个例子就像家里的遥控器,如果支持连按那么你按下音量键以后音量会一直改变增加。
- 不支持连按:还是举遥控器的例子,如果不支持连按,那么你一直按着音量键也只会增加一个
static 函数解释:
void example()
{
int flag=0;
flag++;
return flag;
}
第一个程序多次调用结果 0 0 0 0 0 0 0 0
void example()
{
static int flag=0;
flag++;
return flag;
}
第二个程序多次调用结果 0 1 2 3 4 5 6
按键核心部分
u8 KEY_Scan(u8 mode)
{
static u8 key_up=1;//按键按松开标志
if(mode)key_up=1; //支持连按
if(key_up&&(KEY0==0||KEY1==0||WK_UP==1))
{
delay_ms(10);//去抖动
key_up=0;
if(KEY0==0)return KEY0_PRES;
else if(KEY1==0)return KEY1_PRES;
else if(WK_UP==1)return WKUP_PRES;
}else if(KEY0==1&&KEY1==1&&WK_UP==0)key_up=1;
return 0;// 无按键按下
}
这个 程序里面的mode执行着选择支持连按和不支持连按的指责
当mode=0时不支持连按
在此程序种具体执行过程

本文介绍了STM32中按键扫描的两种思路:支持连按和不支持连按,并通过遥控器的音量键操作为例进行说明。同时,解析了实现按键功能的核心静态函数。
最低0.47元/天 解锁文章
2172





