GPIO 輸入 按鍵檢測

2021-08-03 05:18:41 字數 1261 閱讀 8199

這裡要用到一定的模電知識。電容兩端電壓不能突變,電感兩端電流不能突變。這裡利用了電容的放電延時實現硬體消抖。按鍵按下會有抖動,波形有毛刺,使得高低電平顯現不明顯,而按鍵按下時,電容放電一下,馬上又被充電,此時電容兩端的電壓不會突然變化,這個延時時間恰好可以達到消抖作用。

這裡需要使用乙個韌體庫函式:

/*

* * @brief reads the specified input port pin.

* @param gpiox: where x can be (a..k) to select the gpio peripheral for stm32f405xx/407xx and stm32f415xx/417xx devices

* x can be (a..i) to select the gpio peripheral for stm32f42***/43*** devices.

* x can be (a, b, c, d and h) to select the gpio peripheral for stm32f401xx devices.

* @param gpio_pin: specifies the port bit to read.

* this parameter can be gpio_pin_x where x can be (0..15).

* @retval the input port pin value.

*/uint8_t gpio_readinputdatabit(gpio_typedef*gpiox, uint16_t gpio_pin)

else

return

bitstatus;

}

在第一次使用這個函式的時候,我沒有理解到位,一看到定義bitstatus=0x00,就以為返回的是個八位埠的值,其實這個返回值只有0或者1兩種結果。

/** 

* @brief gpio bit set and bit reset enumeration 

*/ typedef enum

bitaction;

在這個列舉中,可以知道,讀取io的資料只可能是0或者1。

stm32 GPIO 輸入 按鍵檢測

使能 gpio 埠時鐘 初始化 gpio 目標引腳為輸入模式 浮空輸入 編寫簡單測試程式,檢測按鍵的狀態,實現按鍵控制 led 燈。1.按鍵引腳巨集定義 1 引腳定義 2 define key1 gpio clk rcc apb2periph gpioa 3 define key1 gpio por...

按鍵實驗 GPIO輸入

1 參考資料 stm32f1開發指南 庫函式版本 第8章 按鍵輸入實驗 stm32中文參考手冊v10 第8章通用和復用功能io gpio和afio 2 硬體連線 key up pa0 key0 pe4 key1 pe3 key2 pe2 3 gpio輸入操作說明 讀取io口輸入電平呼叫庫函式為 ui...

stm32專題二 GPIO輸入 按鍵檢測

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