STM32——按鍵輸入之static
Static申明的局部變量,存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū)。
它在函數(shù)調(diào)用結(jié)束之后,不會(huì)被釋放。它的值會(huì)一直保留下來(lái)。
所以可以說(shuō)static申明的局部變量,具有記憶功能。
按鍵掃描(支持連續(xù)按)的一般思路u8 KEY_Scan(void)
{
if(KEY按下)
{
delay_ms(10);//延時(shí)10-20ms,防抖。
if(KEY確實(shí)按下)
{
return KEY_Value;
}
return;//無(wú)效值
}
}
u8 KEY_Scan(void)
{
static u8 key_up=1;
if(key_up && KEY)//按下
{
delay_ms(10);//延時(shí),防抖
key_up=0;//標(biāo)記這次key已經(jīng)按下
if(KEY)//確實(shí)按下
{
return KEY_VALUE;
}
}else if(KEY沒(méi)有按下) key_up=1;
return ;//沒(méi)有按下
}
u8 KEY_Scan(u8 mode)
{
static u8 key_up=1;
if(mode==1) key_up=1;//支持連續(xù)按
if(key_up && KEY按下)
{
delay_ms(10);//延時(shí),防抖
key_up=0;//標(biāo)記這次key已經(jīng)按下
if(KEY確實(shí)按下)
{
return KEY_VALUE;
}
}else if(KEY沒(méi)有按下) key_up=1;
return 沒(méi)有按下
}