第一節(jié) 按鍵的基本知識(shí)
按鍵的最基本的知識(shí)就是消抖,它分為軟件消抖和硬件消抖。其中,軟件消抖流程為:當(dāng)檢測(cè)到按鍵按下時(shí),啟動(dòng)一個(gè)延時(shí),持續(xù)一段時(shí)間(通常幾毫秒);在延時(shí)結(jié)束后,再次讀取按鍵狀態(tài);如果按鍵仍然處于按下?tīng)顟B(tài),那么可以確定按鍵的狀態(tài)為按下;否則,可以確定按鍵的狀態(tài)為釋放;軟件消抖通過(guò)延時(shí)等待按鍵電平的穩(wěn)定來(lái)避免誤觸發(fā)。如下圖:
硬件的消抖方案有很多種:在按鍵引腳與微控制器之間添加外部電路元件,如電容、電阻或Schmitt觸發(fā)器等,這些電路元件可以濾除按鍵的電氣噪音,提供更穩(wěn)定的電平信號(hào)。
藍(lán)橋杯嵌入式開(kāi)發(fā)板并沒(méi)有在硬件上處理,所以只能通過(guò)軟件的方式來(lái)消抖。
第二節(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線連接電腦與開(kāi)發(fā)板,注意是CN2口。
現(xiàn)象:LED閃爍一次,按下按鍵,對(duì)應(yīng)的LED翻轉(zhuǎn)一次。
來(lái)源:撞上電子微信公眾號(hào)
-
led
+關(guān)注
關(guān)注
242文章
23388瀏覽量
663625 -
嵌入式
+關(guān)注
關(guān)注
5096文章
19189瀏覽量
308031 -
按鍵
+關(guān)注
關(guān)注
4文章
223瀏覽量
57673
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
藍(lán)橋杯中GPIO輸入之按鍵實(shí)驗(yàn)
![<b class='flag-5'>藍(lán)橋</b><b class='flag-5'>杯</b>中GPIO輸入之<b class='flag-5'>按鍵</b>實(shí)驗(yàn)](https://file.elecfans.com/web2/M00/09/16/pYYBAGD0FvWAeWpFAAAb1Fux1oA753.jpg)
藍(lán)橋杯物聯(lián)網(wǎng)開(kāi)發(fā)板硬件組成
![<b class='flag-5'>藍(lán)橋</b><b class='flag-5'>杯</b>物聯(lián)網(wǎng)開(kāi)發(fā)板硬件組成](https://file.elecfans.com/web2/M00/09/16/pYYBAGD0FvWAeWpFAAAb1Fux1oA753.jpg)
藍(lán)橋杯該如何備賽?
![<b class='flag-5'>藍(lán)橋</b><b class='flag-5'>杯</b>該如何備賽?](https://file.elecfans.com/web2/M00/09/16/pYYBAGD0FvWAeWpFAAAb1Fux1oA753.jpg)
【北京迅為】i.mx8mm嵌入式linux開(kāi)發(fā)指南第四篇 嵌入式Linux系統(tǒng)移植篇第六十九章uboot移植
![【北京迅為】i.mx8mm<b class='flag-5'>嵌入式</b>linux開(kāi)發(fā)指南<b class='flag-5'>第四</b>篇 <b class='flag-5'>嵌入式</b>Linux系統(tǒng)移植篇第六十九章uboot移植](https://file1.elecfans.com/web1/M00/F3/6E/wKgaoWcXSkGAbkAIAADLyCAJHk8578.png)
AMD 面向嵌入式系統(tǒng)推出高能效 EPYC 嵌入式 8004 系列
【「嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用」閱讀體驗(yàn)】+第7-8章學(xué)習(xí)心得
【「嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用」閱讀體驗(yàn)】+第三四章閱讀報(bào)告
【「嵌入式Hypervisor:架構(gòu)、原理與應(yīng)用」閱讀體驗(yàn)】+第一二章讀后感
嵌入式主板是什么意思?嵌入式主板全面解析
第四章:對(duì)廣東龍芯2K0300-蜂鳥(niǎo)板-v1.0視頻教程我的感觸
【「ARM MCU嵌入式開(kāi)發(fā) | 基于國(guó)產(chǎn)GD32F10x芯片」閱讀體驗(yàn)】+書(shū)籍整體概況
學(xué)習(xí)hypervisor嵌入式產(chǎn)品安全設(shè)計(jì)
第四章-V1.5 舵機(jī) 舵機(jī)角度控制 PWM控制紅外對(duì)管和按鍵控制 STM32驅(qū)動(dòng)舵機(jī)控制 SG90控制
![<b class='flag-5'>第四章</b>-V1.5 舵機(jī) 舵機(jī)角度<b class='flag-5'>控制</b> PWM<b class='flag-5'>控制</b>紅外對(duì)管和<b class='flag-5'>按鍵控制</b> STM32驅(qū)動(dòng)舵機(jī)<b class='flag-5'>控制</b> SG90<b class='flag-5'>控制</b>](https://file1.elecfans.com//web2/M00/02/EF/wKgZoma-x9CAWpTNAAB1ACMctZM726.png)
評(píng)論