學習記錄 STM32按鍵輸入實驗

2021-10-05 02:25:22 字數 1039 閱讀 7834

使用藍橋杯ct117e板子

使用stm32標準庫檔案

從圖中可以看出在按鍵未按下時,引腳為高電平。當按鍵按下時引腳為低電平。所以在gpio初始化時使用上拉輸入模式。

1.初始化相應引腳

gpio_inittypedef gpioa_init_key;

gpio_inittypedef gpiob_init_key;

rcc_apb2periphclockcmd

(rcc_apb2periph_gpioa|rcc_apb2periph_gpiob,enable);

gpioa_init_key.gpio_mode=gpio_mode_ipu;

gpioa_init_key.gpio_pin=gpio_pin_0|gpio_pin_8;

gpioa_init_key.gpio_speed=gpio_speed_50mhz;

gpio_init

(gpioa,

&gpioa_init_key)

;

gpiob_init_key.gpio_mode=gpio_mode_ipu;

gpiob_init_key.gpio_pin=gpio_pin_1|gpio_pin_2;

gpiob_init_key.gpio_speed=gpio_speed_50mhz;

gpio_init

(gpioa,

&gpiob_init_key)

;

2.按鍵檢測
所用庫函式

uint8_t gpio_readinputdatabit

(gpio_typedef* gpiox, uint16_t gpio_pin)

通過檢測引腳電平情況判斷是否按下。

可以使用滴答定時器延時消抖。

可以使用滴答定時器延時實現檢測長按短按。

STM32學習記錄 按鍵輸入

程式設計方式 庫函式 目標 按下key1後led燈狀態反轉 按下key2後蜂鳴器與led狀態反轉 按下key3後蜂鳴器狀態反轉 key1 key2低電平有效 key3高電平有效 可設定乙個靜態區域性變數static 變數值在第一次初始化一次,後面的值會存在靜態儲存區,值不會被釋放 來儲存按鍵狀態,以...

stm32按鍵輸入

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

STM32按鍵輸入

這一節通過按鍵輸入的實驗,完成對io口配置輸入的學習,同時學習如何通過軟體去抖動。這一節最終可以實現利用wk up按鍵控制led亮滅的效果。與上一節點亮led相類似,這一節也需要在hardware資料夾內新建檔案key.h和key.c。同時將相應的檔案加入到工程中。檢視原理圖,獲取wk up按鍵的相...