STM32的按鍵方法

2022-07-13 15:54:09 字數 884 閱讀 2582

按鍵可以用按鍵掃瞄的方法和外部中斷的方法。

外部中斷看前面,個人推薦使用外部中斷更好。

其餘情況可以用按鍵掃瞄,這裡只講按鍵掃瞄的方法。

先在main.h中定義按鍵名稱

#define key0        hal_gpio_readpin(gpioc,gpio_pin_5)  //

key0按鍵pc5

#define key1 hal_gpio_readpin(gpioa,gpio_pin_15) //

key1按鍵pa15

#define wk_up hal_gpio_readpin(gpioa,gpio_pin_0) //

wkup按鍵pa0

#define key0_pres 1 //

key0

#define key1_pres 2 //

key1

#define wkup_pres 3 //

wk_up

在main.c中定義按鍵掃瞄函式

int key_scan(int

mode)

else

if(key0==1&&key1==1&&wk_up==0)key_up=1

;

return

0;//

無按鍵按下

}

最後在main.c中的while迴圈中新增:

key = key_scan(0);  //

得到鍵值

switch

(key)

即可。i will make a difference.

stm32 工業按鍵檢測 STM32按鍵的檢測

stm32的按鍵檢測相對比較簡單,首先按部就班的初始化連線的到的i o,然後寫乙個按鍵掃瞄函式,這個和51微控制器的差不多。以下是乙個比較典型的例子 利用按鍵控制led key.件 ifndef key h define key h include sys.h definekey0 gpio rea...

STM32按鍵實驗

用systick做時間20ms的判斷,用狀態機概念的按鍵掃瞄三狀態去除抖動,狀態0 有按鍵按下,狀態1 有按鍵按下,判斷具體按鍵,狀態3 判斷按鍵抬起,沒20ms進行狀態的判斷。流程圖 systick程式 不包括初始化程式,初始化程式在delay.c中 systick load 20 fac ms ...

stm32按鍵輸入

對於上乙個實驗流水燈來說,這一次的實驗是獲取輸入的乙個小demo。在課堂上,看老師除錯的時候,只要有輸入則輸入暫存器idr的值就會改變,所以想要獲得輸入只需要迴圈去獲取idr的值即可。在stm32的庫中有乙個讀取輸入資訊的函式 uint8 t gpio readinputdatabit gpio t...