使能 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口...