你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】stm32矩阵键盘(扫描模式)

[复制链接]
STMCU小助手 发布时间:2022-5-19 10:57
因为最近开发一个项目需要用到3*4的矩阵键盘,所以我就写了一下相关的矩阵键盘的内容,分享出来供大家参考。
& `& C$ Q; D0 Y
. z, x7 ~8 l. G) t! _* Y
0 \% q* f" {5 A5 o4 D9 G我所用到的矩阵键盘是3*4的矩阵键盘实物图如下
8 Z( g8 R$ r$ |: v+ s- X8 F8 N, m) |$ b  u( `
9~]D3WMPECEP_48K(W`T]Y1.png
/ g1 u+ `: w0 t% g2 ~! G1 p) _. p
; J% j5 `& e& F7 y. E0 Y$ v  S, c其中是4行3列,示意图如下
3 Q7 p  _6 w0 J: I! }2 ~4 H" O$ l* f# O* r
N{QH~RTL9`HBN@P97W@0X}M.png
; }0 x! \  _# d# o' \: ]7 b) z: @$ S3 s$ g
采用循环扫描的方式主要是应用while循环来进行,优点是可以进行快速反应,缺点是占用较多的机时,CPU卡在这个循环里出不来。
% _! K$ X  H2 r+ P% i( X, _: |8 v/ v9 Z5 L" z2 ~% }
具体的思想就是通过变换GPIO的引脚电平来读取具体是哪个按键被按下。* c* w+ w7 C1 F% F

: O% ?* \# w7 k首先是将行中连接的引脚设置为上拉输入模式,将列中引脚设置为推挽输出模式,并将列的引脚都定义为低电平。
' h8 ]/ |! ~8 X  x
! a/ q+ g, ]: Z2 M* G; c! @8 R如果有按键按下,行输入就会得到低电平信号,就可以确定是哪一行的按键被按下。当测出哪一行的按键被按下后,再反过来,将行的引脚都设置为推挽输出模式,定义为高电平;将列的引脚都设置为下拉输入模式。
1 ?- a6 v) H$ `* E5 @# Y8 X; y  T2 S  L: u9 O6 f
这样再通过列的扫描,如果列得到高电平,就可以确定是哪一列的按键被按下。通过两次循环扫描可以定位到具体是哪个按键按下,返回键值后就可以进行后续操作。
# u4 I5 Y& @% K, ]8 N
7 `  r( A' D) f3 s  o6 [& l/ ?效果图1 q/ V4 F8 z' q1 X' c
0 \$ c3 Z$ o/ e# K7 p
TT4DY4%{GL61C64@X3E{3]9.png 3 T8 E$ @, J9 A6 v( r& {  H
: n/ n5 F. v8 h$ u: b
按下#号键/ y( l2 K: {6 l

* t( }3 G2 [0 Y. f6 g) i7 b2 e PUJ$J90~_A(%@R%F]SU9W5O.png 2 l$ Y0 M) f4 G. m" @& T3 S! F
, ]' T* D) }* y7 X
按下7) {. X# P7 C1 {0 o$ N3 O
3 I) ]: @9 d; T' ^3 Q. t
D8V6]LJ{@A)}B2F}A`W{~NU.png 7 I9 B1 t& d3 I8 G
! N/ z7 Y& t6 w, P, M2 z
按下8
6 I3 F6 H; o% k! l( [% x7 `) y8 h/ A* l- r7 a! }
代码的大致思想如下
& L9 j  C$ g4 r A6JEIS6N84N]EJUYHZ2)J@T.png
7 B/ `/ k5 l- i5 e4 _3 r7 t8 i6 g, M# B/ ~8 @
6 A6 q8 F( H9 R. h: B3 z9 \) F! i
6 ~% Z8 ?+ ]: D. l; a. Z
" t* B- T' v" P6 S- T6 C. ^

* N' x7 I* Y7 |+ V" O
5 E% g9 E/ f) q: }3 a
VG)W)2$6DZ(8L484~7MI~ZT.png
赞 收藏 评论0 发布时间:2022-5-19 10:57

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版