關於上拉,下拉電阻的解釋:
根據原理圖得到的資訊:
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包含兩個函式,乙個是初始化函式,另乙個是按鍵掃瞄函式,會按鍵被按下時,返回...