stm32 03 輸入檢測 按鍵

2021-10-11 17:40:31 字數 1643 閱讀 5392

關於上拉,下拉電阻的解釋:

根據原理圖得到的資訊:

gbioa

浮空輸入

第0位腳

根據以上資訊編寫標頭檔案巨集定義:

#ifndef __bsp_key_h

#define __bsp_key_h

#include

"stm32f10x.h"

#define key_on 1

#define key_off 0

#define key1_gpio_pin gpio_pin_0

#define key1_gpio_port gpioa

#define key1_gpio_clk rcc_apb2periph_gpioa

#define led_toggle led_g_gpio_port->odr ^= led_g_gpio_pin;

// 通過異或來反轉電位實現開關

void

key_gpio_config

(void);

//初始化gpioa的函式

uint8_t key_scan

(gpio_typedef *gpiox, uint16_t gpio_pin)

;//輸入檢測函式

#endif

/* __bsp_key_h */

編寫.c檔案

#include

"bsp_key.h"

void

key_gpio_config

(void

)uint8_t key_scan

(gpio_typedef *gpiox, uint16_t gpio_pin)

else

}

#include

"stm32f10x.h"

#include

"bsp_led.h"

#include

"bsp_key.h"

#include

"bsp_rccclkconfig.h"

void

delay

(uint32_t count)

intmain

(void)}

}

stm32 GPIO 輸入 按鍵檢測

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

GPIO 輸入 按鍵檢測

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

stm32專題二 GPIO輸入 按鍵檢測

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