x25py4bvp5f6402624247.png
0 T% M4 P7 J) r1 [* P# T9 `: u. `1 E+ p8 ?' {; @( J
第一节 按键的基本知识
. @% R0 u7 z: k( m1 f8 U& I9 l按键的最基本的知识就是消抖,它分为软件消抖和硬件消抖。其中,软件消抖流程为:当检测到按键按下时,启动一个延时,持续一段时间(通常几毫秒);在延时结束后,再次读取按键状态;如果按键仍然处于按下状态,那么可以确定按键的状态为按下;否则,可以确定按键的状态为释放;软件消抖通过延时等待按键电平的稳定来避免误触发。如下图:
' K, G7 w- x; V( J5 f8 N L : _4 d" \8 W4 S; X1 `- u
3fp1tcoalfy6402624347.png
- q: W P$ A& @) g& Q# c$ C. k
. o E6 P& P q2 ?# \8 Y: Z硬件的消抖方案有很多种:在按键引脚与微控制器之间添加外部电路元件,如电容、电阻或Schmitt触发器等,这些电路元件可以滤除按键的电气噪音,提供更稳定的电平信号。, i+ ^& }! L, t4 a, {
蓝桥杯嵌入式开发板并没有在硬件上处理,所以只能通过软件的方式来消抖。- i- R- u& X% C/ ~! v. a7 j/ X
第二节 硬件解读
! l" X2 j o7 p8 b/ B
sbcnjsom3tk6402624448.png
- b5 y! u' K4 m- q- r" v从图中我们可以看出,一共有4个按键,每一个按键的原理图都是一样的,我们举一个例子吧,以PA0为例,当按键被按下,按键的1,2和3,3导通,按键的3,4接地,导致PA0也接地,所以PA0也就是低电平。由此我们知道,当按键按下时,PA0为低电平;反之为高电平。+ v' g# k2 E i ^1 y D: [
以下是按键和引脚的关系:6 j' W* Q! c+ s: D& Z2 u
按键
~9 A. E! k$ m | 引脚
+ I% T- }& V- ~$ X, l4 f" c1 [ | B1
- d& r; V8 `- S6 U9 q | PB0- j" D1 z. C \9 T R
| B21 w6 E! w# c5 {& g" ]
| PB1
# I* _' p$ b1 P$ i: x* v# f9 F/ |/ V | B3) A# a3 T4 }/ J7 D
| PB26 p- M# j+ H9 N" ? H
| B4
: e# U2 O- B# R) S* S | PA01 }2 h) w" A2 e5 k; O
| 4 I$ P) I* D/ o; I" k o7 C
第三节 CubeMX配置 配置PB0,PB1,PB2,PA0为输入模式,并配置上拉和标签。【注意:配图有误,配图为输出模式,正常是输入模式】
, H5 [( o: ]+ u0 o$ d, w
hc0ifwidcvp6402624548.png
3 o% n; L% P$ M# q+ d( C: o" D1 b- g9 v
第四节 MDK代码
% |! G6 Q' }" s' v" ^1 d" U" I1 `
sppykn1huoo6402624648.png
5 |9 ^: I: q/ S
结合上图,可以看出需要20ms的消抖时间。所以MDK代码如下: c: \. y' ~ W- p8 \
tmdsqv0jtva6402624748.png
8 H1 M; T' T8 t: Z% y
# F, x. k& S7 n& O( E
nxdtt0gwuv26402624848.png
1 X8 v* K8 u) u9 s
5 c" `9 p5 K: e
gqhs2em05wy6402624948.png
8 B- U& S+ z: r; p0 e
' f0 u- b( ^- H: n
kb2lr0zjfgn6402625049.png
: p" w8 p5 [9 M: _% g# \ C4 U7 h4 }; g3 ^+ Y$ l7 X
xxitahjhv1b6402625149.png
8 b |1 l- L* S7 z) r5 [- r第五节 实验现象 注意:请用USB线连接电脑与开发板,注意是CN2口。# A4 w# @. b( B' F0 k( J. P
现象:LED闪烁一次,按下按键,对应的LED翻转一次。
0 B3 F0 c; w6 H- e# r* k来源:撞上电子微信公众号; ?4 ]; M8 t; [
版权:东莞市东城墨竹公子电子工作室
( n4 x/ D$ X+ e3 z日期:2023.08.30
. r; Q" M- `0 x1 [8 b2 k8 n: s==========+ f8 w, W! v% }5 J8 S4 i
往期回顾:【蓝桥杯嵌入式】第三章 LED流水灯3 K/ r* H p7 ~" @' z/ i+ T
【蓝桥杯嵌入式】第二章 软件安装- X4 H) ?1 d" b$ ~: G' D; ^: [* ^
【蓝桥杯嵌入式】第一章 大赛概述7 O# V5 j& Z l8 b6 G
==========
- \0 j" C2 E" r) b. Q) e" P
newnyjcl4ah6402625249.png
2 j l8 f4 \, \! \8 m; T4 O4 {
4 p9 T% _* |3 v; l" F) D# i* s" ?$ d4 t+ @
1u04frqbl246402625349.png
|