博主從硬體方面和軟體方面進行講解。
硬體方面,我們先來看看按鍵模組的物理連線。
我們很容易的發現,當我們按下按鍵的時候,nk1(ps以這個按鍵為例)電平將會被拉低。試想如果這個與nk1相連的的管腳如果在沒有按下按鍵的時候保持高電平,我們只需要檢測管腳訊號的變化既可以知道有無按鍵按下。
還有乙個關於硬體方面的特性,就是按鍵的抖動。這個方面博主就不仔細講解了。
軟體方面
#include
"stm32f10x.h"
#include
"key.h"
/***按鍵初始化函式***/
/*無返回值;
無引數;
key1-gpioa_pin_0
key2-gpioa_pin_8
key3-gpiob_pin_1
key4-gpiob_pin_2
*/void
key_init()
/***按鍵掃瞄函式***/
u8 key_scan()
if(key2!=1)
if(key3!=1)
if(key4!=1)
return key_value;
}
上面的**當中key1,是巨集定義在key.h當中的。
#ifndef __key_h
#define __key_h
#define key1 gpio_readinputdatabit(gpioa,gpio_pin_0)
#define key2 gpio_readinputdatabit(gpioa,gpio_pin_8)
#define key3 gpio_readinputdatabit(gpiob,gpio_pin_1)
#define key4 gpio_readinputdatabit(gpiob,gpio_pin_2)
void
key_init()
;u8 key_scan()
;#endif
備戰藍橋杯之嵌入式 按鍵實驗
這次要實現的功能是lcd顯示我按下的是哪乙個鍵。需要注意一下幾個點 1 配置button的時候要注意是輸入模式,因此不需要配置頻率。2 配置成上拉輸入 ipu 還是下拉輸入 ipd 要看硬體連線,按鍵沒按下時檢測到高電平則為上拉輸入,按鍵沒按下前檢測到低電平則為下拉輸入 3 define x xx語...
藍橋杯嵌入式 USART
乙個是串列埠 1 pa9,pa10 乙個是串列埠 2 pa2,pa3 我們的藍橋杯嵌入式開發板並不能直接使用串列埠 1rxbuf 是用來儲存串列埠的接收資料的,rxover 為接收串列埠結束標誌位,rxcunt 為串列埠接收計數值 ifndef usart h define usart h incl...
藍橋杯嵌入式 LCD
include stm32f10x.h include lcd.h include stdio.h u8 string 20 u8 temp 30 float ao 3.81 u32 timingdelay 0 void delay ms u32 ntime main body int main v...