藍橋杯嵌入式 按鍵輸入

2021-10-03 07:00:17 字數 1107 閱讀 3558

博主從硬體方面和軟體方面進行講解。

硬體方面,我們先來看看按鍵模組的物理連線。

我們很容易的發現,當我們按下按鍵的時候,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...