名稱:按鍵控制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...