按鍵可以用按鍵掃瞄的方法和外部中斷的方法。
外部中斷看前面,個人推薦使用外部中斷更好。
其餘情況可以用按鍵掃瞄,這裡只講按鍵掃瞄的方法。
先在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(intmode)
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...