|
* u6 G) Q9 B% {% H6 x
5 U; Y: t4 h. Y, q% L第一节 按键的基本知识
" ]% `2 P3 }% g5 z7 K* S' W) m按键的最基本的知识就是消抖,它分为软件消抖和硬件消抖。其中,软件消抖流程为:当检测到按键按下时,启动一个延时,持续一段时间(通常几毫秒);在延时结束后,再次读取按键状态;如果按键仍然处于按下状态,那么可以确定按键的状态为按下;否则,可以确定按键的状态为释放;软件消抖通过延时等待按键电平的稳定来避免误触发。如下图:
# @, T6 ?2 ]9 ^9 \3 B# g( U4 m 3 Z* K& Z1 ~+ j6 e; _" I* S7 u# X

! _5 w. I4 C/ I" M
5 d" f/ O; E# J. o硬件的消抖方案有很多种:在按键引脚与微控制器之间添加外部电路元件,如电容、电阻或Schmitt触发器等,这些电路元件可以滤除按键的电气噪音,提供更稳定的电平信号。
! s4 [) w% m9 p: g6 M* C% ?( a3 z蓝桥杯嵌入式开发板并没有在硬件上处理,所以只能通过软件的方式来消抖。
6 F3 }7 u M( M2 z- ^$ a第二节 硬件解读
6 ?: P" x7 X9 s6 A' x1 t" T% h
4 ]* x |# w M8 X从图中我们可以看出,一共有4个按键,每一个按键的原理图都是一样的,我们举一个例子吧,以PA0为例,当按键被按下,按键的1,2和3,3导通,按键的3,4接地,导致PA0也接地,所以PA0也就是低电平。由此我们知道,当按键按下时,PA0为低电平;反之为高电平。6 |+ k+ M; U9 W3 p6 A
以下是按键和引脚的关系:
+ x& _$ ^5 I9 e# `" w按键
6 M) [) Y9 ^; {' W- s+ b | 引脚
' a. C; m$ _& q g4 B! ~5 q0 D | B1
$ u: [5 ~8 A' Q0 S: ]6 { | PB0
/ F; B. q9 Q* q8 C% J6 E& y | B2
7 K& J; U! H2 K( b; I | PB1* [1 ?. `0 A* i1 |% i) K
| B3
" n' g, [/ u1 c4 l6 b+ Y | PB2: d# O# I8 F: `- t' f
| B4! [# w2 @5 ~9 ?
| PA0
Y( z" z1 L; e6 Q [0 L | 1 C0 }5 @0 a3 e8 N, b% c
第三节 CubeMX配置 配置PB0,PB1,PB2,PA0为输入模式,并配置上拉和标签。【注意:配图有误,配图为输出模式,正常是输入模式】; O4 I5 M" x% p* | g) J9 Z. k) _

1 b& N0 v2 ~; `; w0 q9 n* i第四节 MDK代码
7 _' u, v+ t9 F( {7 t! w/ ` ! @& n9 `. ?' z3 p9 ^
结合上图,可以看出需要20ms的消抖时间。所以MDK代码如下:; h7 _$ R/ ?: w: j7 \0 U5 p- u; L

; O g6 i) X- ^- @, M' A3 F) ^# T2 t# L, d5 _8 }

9 h/ V% }5 k: |9 i; A; |5 B9 |- t
9 ~7 L) l+ ^! F1 A& I3 w 5 _+ e5 d* u0 q0 b
7 ?7 L3 G9 y7 M: r, N
: [1 ]& n4 ~; ]6 F7 i2 H2 G5 Z
. t: y! s3 [( S+ Q6 }
5 k. q* e! d3 s第五节 实验现象 注意:请用USB线连接电脑与开发板,注意是CN2口。/ E& ?) C# w# M3 A' j+ |
现象:LED闪烁一次,按下按键,对应的LED翻转一次。: o! b( f$ b; }5 y/ q
来源:撞上电子微信公众号
& D8 C+ [5 B* d* e, n1 ?6 d9 \8 r版权:东莞市东城墨竹公子电子工作室 \- U, q# @6 |
日期:2023.08.30( p$ U! l- d' H' W5 k1 ?
==========* t1 L2 F( R' Y7 @. @4 n6 D
往期回顾:【蓝桥杯嵌入式】第三章 LED流水灯
. F5 |; W y( m( m6 ?$ T/ g【蓝桥杯嵌入式】第二章 软件安装
- H% a. l# F8 z r+ L& T. x【蓝桥杯嵌入式】第一章 大赛概述2 J9 Z; g% |" s: E3 _6 ]( R
==========2 |* X. e; O* C- M/ \
7 N1 \* I1 C3 Y
2 e) Z7 H; t: K" k* C' ?
" F+ O7 {% v( ^# @ |
|