按鍵長短按

2021-09-29 15:35:14 字數 748 閱讀 5943

key_s1, 未按下時,發現按鍵按下,進入key_s2,否則進入key_s1

key_s2, 有鍵按下,發現按鍵按下,進入key_s3,否則為誤判,進入key_s1

key_s3, 穩定按下發現按鍵按下,繼續key_s3,記數,按鍵抬起進入key_s4

key_s4,確認按鍵抬起,回到初始狀態

enum key_states_e;      

void key_scan(gpio_typedef* gpiox,uint16_t gpio_pin)

else

break;

case key_s2:

if(gpio_readinputdatabit(gpiox,gpio_pin) == 1)else

break;

case key_s3:

if(gpio_readinputdatabit(gpiox,gpio_pin) == 1)else

} else

break;

case key_s4:

if(gpio_readinputdatabit(gpiox,gpio_pin) == 0)

break;

default:

key_state = key_s1;

press = 0;

break;

}}

10 5 微控制器長短按鍵的應用

在微控制器系統中應用按鍵的時候,如果只需要按下一次按鍵加 1 或減 1,那用第 8 章學到的知識就可以完成了,但如果想連續加很多數字的時候,要一次次按下這個按鍵確實有點不方便,這時我們會希望一直按住按鍵,數字就自動持續增加或減小,這就是所謂的長短按鍵應用。當檢測到乙個按鍵產生按下動作後,馬上執行一次...

10 5 微控制器長短按鍵的應用

在微控制器系統中應用按鍵的時候,如果只需要按下一次按鍵加 1 或減 1,那用第 8 章學到的知識就可以完成了,但如果想連續加很多數字的時候,要一次次按下這個按鍵確實有點不方便,這時我們會希望一直按住按鍵,數字就自動持續增加或減小,這就是所謂的長短按鍵應用。當檢測到乙個按鍵產生按下動作後,馬上執行一次...

微控制器按鍵長短按得識別原理

stm32f103 按鍵長短按得識別原理 需要乙個定時器,用來計算按鍵按下的時間,可以一秒鐘檢測100次,設定初始化為10ms的中斷,比如使用定時4作為按鍵時間計算的定時器 比如我們需要4種模式,輕觸,短按,長按,超級長按 define clicktypetouch 1 輕觸 define clic...