stm32 GPIO 輸入 按鍵檢測

2021-10-13 16:04:21 字數 1437 閱讀 5873

使能 gpio 埠時鐘;

初始化 gpio 目標引腳為輸入模式(浮空輸入);

編寫簡單測試程式,檢測按鍵的狀態,實現按鍵控制 led 燈。

1. 按鍵引腳巨集定義

1

// 引腳定義

2 #define key1_gpio_clk rcc_apb2periph_gpioa

3 #define key1_gpio_port gpioa

4 #define key1_gpio_pin gpio_pin_0

56 #define key2_gpio_clk rcc_apb2periph_gpioc

7 #define key2_gpio_port gpioc

8 #define key2_gpio_pin gpio_pin_13

2. 按鍵 gpio 初始化函式

1

void

key_gpio_config

(void)2

3. 檢測按鍵的狀態

1

/** 按鍵按下標置巨集

2 * 按鍵按下為高電平,設定 key_on=1, key_off=0

3 * 若按鍵按下為低電平,把巨集設定成 key_on=0 ,key_off=1 即可

4 */

5 #define key_on 1

6 #define key_off 078

/**9 * @brief 檢測是否有按鍵按下

10 * @param gpiox:具體的埠, x 可以是(a...g)

11 * @param gpio_pin:具體的埠位, 可以是 gpio_pin_x(x 可以是 0...15)

12 * @retval 按鍵的狀態

13 * @arg key_on:按鍵按下

14 * @arg key_off:按鍵沒按下

15 */

16 uint8_t key_scan

(gpio_typedef* gpiox,uint16_t gpio_pin)

17else

24return key_off;

25}

4. 主函式

1

/**2 * @brief 主函式

3 * @param 無

4 * @retval 無

5 */

6int

main

(void)7

2021if(

key_scan

(key2_gpio_port,key2_pin)

== key_on )25}

26}

stm32專題二 GPIO輸入 按鍵檢測

新建板級支援包bsp key.c和bsp key.h gpio輸入配置過程 定義初始化結構體 開啟rcc時鐘,非常重要 寫入引腳和模式配置,不需要配置速度 呼叫初始化函式,將初始化結構體寫入對應的gpio埠。bsp key.c包含兩個函式,乙個是初始化函式,另乙個是按鍵掃瞄函式,會按鍵被按下時,返回...

STM32 GPIO之二 按鍵例程 學習總結

一.gpio的8種工作模式 1.4種輸入模式 1 上拉輸入模式 gpio mode ipu 在預設狀態下 gpio引腳無輸入 讀取得的gpio引腳資料為1,高電平。2 下拉輸入模式 gpio mode ipd 在預設狀態下 gpio引腳無輸入 讀取得的gpio引腳資料為0,低電平。3 浮空輸入模式 ...

STM32GPIO部分介紹

最近在老師交給了乙個專案,需要用到stm32微控制器,這裡就在學習的過程中所注意到的一些地方或細節部分記錄了下來,筆者所使用的是stm32f407zgt6晶元 探索者 檢視晶元的資料手冊 這個 對每個i o口的功能進行了很詳細的介紹。每個i o除了作為i o使用外,還可以作為其他的復用。已以pe2口...