STM32入坑(五)按鍵控制LED小燈

2021-10-06 22:11:09 字數 1162 閱讀 1588

名稱:按鍵控制led小燈

功能:key0控制led小燈,按鍵按一次燈亮,再按一次燈滅

硬體資源:stm32開發板、(按鍵、led燈)

如圖,當配置按鍵key0為上拉輸入,掃瞄按鍵的狀態時,為高電平。當我們手動按下按鍵key0時,按鍵和gnd接通,再掃瞄按鍵key0時則為低電平。上述就是按鍵的原理,如果掃瞄到按鍵對應埠為低電平,則表示按鍵按下。(當然按鍵如果接高電平則應配置按鍵模式為下拉輸入)

1.讀取io口輸入電平的庫函式:

gpio_readinputdatabit(gpioa,gpio_pin_15) //讀取a15引腳

2.讀取io口輸入電平的位帶操作:

pain(15) //讀取a15引腳

1. 配置按鍵埠

注:引腳需配置為上/下拉輸入

void

key_init

(void

)

2.編寫按鍵掃瞄函式

//mode為是否支援連按

//0:不支援連按; 1:支援連按

u8 key_scan

(u8 mode)

else

if(key1==

1)key_up=1;

return0;

//無按鍵按下

}

3.主函式初始化led,delay和key

delay_init()

;led_init()

;key_init()

;

4.在while中掃瞄按鍵,如果key0按鍵按下,led狀態翻轉

while(1)}}

按鍵掃瞄函式中必須有個delay_us(10),用於消抖,濾除干擾訊號。

掃瞄函式中,原子哥配備了乙個引數mode,用於支援連按和不連按。大家根據需求選擇。

程式已經過除錯驗證,key0按鍵和led燈工作正常

完整**傳送門:

STM32外部中斷(實現按鍵控制LED)

中斷 這個概念,指的是在微控制器執行過程中,在指定條件發生時,停下當前所有工作,去執行中斷處理函式內的內容。就像我們在教室上課時,突然 了,不出意外的話我們都需要停下手中學習任務,去進行一系列的避險動作。這一節我們通過中斷的方式,完成通過按鍵控制led亮滅的操作。stm32的中斷控制器支援19個外部...

STM32通過按鍵控制LED燈示例

stm32f407ze 通過按鍵控制led燈示例,要求 按鍵按下 d1亮 按鍵鬆開 d1滅 按鍵按下一次 d1亮 按鍵再按下一次 d1滅 按鍵每按下一次d1實現翻轉 需要注意的是按鍵需用到延時消抖,延時時長按實際進行修改,檢測按鍵按下與鬆開應該使用標誌位等區分,如果只是通過讀取按鍵返回值判斷,在wh...

微控制器STM32入門 (2)按鍵控制

2.程式編寫 2.2主程式 理論情況按鍵的電壓波形應該為方波 但是實際按鍵電壓波形,會有電壓抖動,我們需要通過延時來進行按鍵消抖,這裡需要用到延時函式delay ms 通過分析,我們可以知道。首先我們需要gpio資料讀取函式,從pd8和pd9讀取資料,並記為key0 和 key1,然後需要宣告voi...