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&am