STMCU小助手
发布时间:2022-5-19 10:57
|
因为最近开发一个项目需要用到3*4的矩阵键盘,所以我就写了一下相关的矩阵键盘的内容,分享出来供大家参考。 5 J" F$ W3 s4 v4 u 我所用到的矩阵键盘是3*4的矩阵键盘实物图如下
" @/ }$ a& a5 w1 M 其中是4行3列,示意图如下
采用循环扫描的方式主要是应用while循环来进行,优点是可以进行快速反应,缺点是占用较多的机时,CPU卡在这个循环里出不来。: l6 A: e9 d2 O" z7 ` ' _% z) G( f w# v$ Q& ~ 具体的思想就是通过变换GPIO的引脚电平来读取具体是哪个按键被按下。. L' A1 F8 {& ]$ l8 A 9 L. v* g- K/ ?2 M, |, O0 W 首先是将行中连接的引脚设置为上拉输入模式,将列中引脚设置为推挽输出模式,并将列的引脚都定义为低电平。 如果有按键按下,行输入就会得到低电平信号,就可以确定是哪一行的按键被按下。当测出哪一行的按键被按下后,再反过来,将行的引脚都设置为推挽输出模式,定义为高电平;将列的引脚都设置为下拉输入模式。& f; l+ ^$ p" k0 G# n: _8 A% l* c T) C 3 k3 |. A, ]! f* U7 a: n8 l0 b' | 这样再通过列的扫描,如果列得到高电平,就可以确定是哪一列的按键被按下。通过两次循环扫描可以定位到具体是哪个按键按下,返回键值后就可以进行后续操作。 ( U( g- B# D6 j# X% {9 @ 效果图
按下#号键+ n6 X* t1 `- e, F) H9 v
" \+ o$ k8 f( I; E9 J- S 按下7
按下8 代码的大致思想如下
& J( j: ~1 v" y# G: L 7 h7 H6 l' [" f5 F/ [ 1 \" ~3 ?+ F2 h! k9 W9 T |
【经验分享】STM32语音识别的智能蓝牙音箱(源程序+原理图+PCB+设计说明书+PPT)
想找个ST芯片
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
技术手册stm32f1xx中的一个小问题
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
微信公众号
手机版