第一節(jié) 按鍵的基本知識(shí)
按鍵的最基本的知識(shí)就是消抖,它分為軟件消抖和硬件消抖。其中,軟件消抖流程為:當(dāng)檢測(cè)到按鍵按下時(shí),啟動(dòng)一個(gè)延時(shí),持續(xù)一段時(shí)間(通常幾毫秒);在延時(shí)結(jié)束后,再次讀取按鍵狀態(tài);如果按鍵仍然處于按下狀態(tài),那么可以確定按鍵的狀態(tài)為按下;否則,可以確定按鍵的狀態(tài)為釋放;軟件消抖通過延時(shí)等待按鍵電平的穩(wěn)定來避免誤觸發(fā)。如下圖:

硬件的消抖方案有很多種:在按鍵引腳與微控制器之間添加外部電路元件,如電容、電阻或Schmitt觸發(fā)器等,這些電路元件可以濾除按鍵的電氣噪音,提供更穩(wěn)定的電平信號(hào)。
藍(lán)橋杯嵌入式開發(fā)板并沒有在硬件上處理,所以只能通過軟件的方式來消抖。
第二節(jié) 硬件解讀

從圖中我們可以看出,一共有4個(gè)按鍵,每一個(gè)按鍵的原理圖都是一樣的,我們舉一個(gè)例子吧,以PA0為例,當(dāng)按鍵被按下,按鍵的1,2和3,3導(dǎo)通,按鍵的3,4接地,導(dǎo)致PA0也接地,所以PA0也就是低電平。由此我們知道,當(dāng)按鍵按下時(shí),PA0為低電平;反之為高電平。
以下是按鍵和引腳的關(guān)系:
按鍵 | 引腳 |
B1 | PB0 |
B2 | PB1 |
B3 | PB2 |
B4 | PA0 |
第三節(jié) CubeMX配置
配置PB0,PB1,PB2,PA0為輸入模式,并配置上拉和標(biāo)簽。【注意:配圖有誤,配圖為輸出模式,正常是輸入模式】

第四節(jié) MDK代碼

結(jié)合上圖,可以看出需要20ms的消抖時(shí)間。所以MDK代碼如下:





第五節(jié) 實(shí)驗(yàn)現(xiàn)象
注意:請(qǐng)用USB線連接電腦與開發(fā)板,注意是CN2口。
現(xiàn)象:LED閃爍一次,按下按鍵,對(duì)應(yīng)的LED翻轉(zhuǎn)一次。
來源:撞上電子微信公眾號(hào)
-
led
+關(guān)注
關(guān)注
243文章
24602瀏覽量
691005 -
嵌入式
+關(guān)注
關(guān)注
5199文章
20454瀏覽量
334269 -
按鍵
+關(guān)注
關(guān)注
4文章
229瀏覽量
58501
發(fā)布評(píng)論請(qǐng)先 登錄
嵌入式新手必看!GPIO調(diào)試從0到1:計(jì)算、操作、排錯(cuò)全指南
什么是嵌入式應(yīng)用開發(fā)?
【瑞薩RA × Zephyr評(píng)測(cè)】LED、按鍵和UART
嵌入式通信技術(shù)轉(zhuǎn)型:MCU+AT向OpenCPU的必然性深度拆解(下篇)
嵌入式從入門到進(jìn)階,怎么學(xué)?
2025“芯原杯”全國嵌入式軟件開發(fā)大賽圓滿落幕
BitsButton嵌入式按鍵處理框架
【「DeepSeek 核心技術(shù)揭秘」閱讀體驗(yàn)】--全書概覽
初級(jí)工程師PCB設(shè)計(jì)技巧(PPT版)
Linux嵌入式和單片機(jī)嵌入式的區(qū)別?
第四章 什么是寄存器
【藍(lán)橋杯嵌入式】第四章 按鍵控制LED
評(píng)論