STM32——按键输入之static
扫描二维码
随时随地手机看文章
Static申明的局部变量,存储在静态存储区。
它在函数调用结束之后,不会被释放。它的值会一直保留下来。
所以可以说static申明的局部变量,具有记忆功能。
按键扫描(支持连续按)的一般思路u8 KEY_Scan(void)
{
if(KEY按下)
{
delay_ms(10);//延时10-20ms,防抖。
if(KEY确实按下)
{
return KEY_Value;
}
return;//无效值
}
}
u8 KEY_Scan(void)
{
static u8 key_up=1;
if(key_up && KEY)//按下
{
delay_ms(10);//延时,防抖
key_up=0;//标记这次key已经按下
if(KEY)//确实按下
{
return KEY_VALUE;
}
}else if(KEY没有按下) key_up=1;
return ;//没有按下
}
u8 KEY_Scan(u8 mode)
{
static u8 key_up=1;
if(mode==1) key_up=1;//支持连续按
if(key_up && KEY按下)
{
delay_ms(10);//延时,防抖
key_up=0;//标记这次key已经按下
if(KEY确实按下)
{
return KEY_VALUE;
}
}else if(KEY没有按下) key_up=1;
return 没有按下
}