STMCU小助手
发布时间:2022-5-19 10:57
|
因为最近开发一个项目需要用到3*4的矩阵键盘,所以我就写了一下相关的矩阵键盘的内容,分享出来供大家参考。 我所用到的矩阵键盘是3*4的矩阵键盘实物图如下 - X8 F8 N, m) |$ b u( `
其中是4行3列,示意图如下 4 H" O$ l* f# O* r
: ]7 b) z: @$ S3 s$ g 采用循环扫描的方式主要是应用while循环来进行,优点是可以进行快速反应,缺点是占用较多的机时,CPU卡在这个循环里出不来。 8 v/ v9 Z5 L" z2 ~% } 具体的思想就是通过变换GPIO的引脚电平来读取具体是哪个按键被按下。* c* w+ w7 C1 F% F 首先是将行中连接的引脚设置为上拉输入模式,将列中引脚设置为推挽输出模式,并将列的引脚都定义为低电平。 如果有按键按下,行输入就会得到低电平信号,就可以确定是哪一行的按键被按下。当测出哪一行的按键被按下后,再反过来,将行的引脚都设置为推挽输出模式,定义为高电平;将列的引脚都设置为下拉输入模式。 8 X; y T2 S L: u9 O6 f 这样再通过列的扫描,如果列得到高电平,就可以确定是哪一列的按键被按下。通过两次循环扫描可以定位到具体是哪个按键按下,返回键值后就可以进行后续操作。 效果图1 q/ V4 F8 z' q1 X' c 0 \$ c3 Z$ o/ e# K7 p
: n/ n5 F. v8 h$ u: b 按下#号键/ y( l2 K: {6 l
, ]' T* D) }* y7 X 按下7) {. X# P7 C1 {0 o$ N3 O 3 I) ]: @9 d; T' ^3 Q. t
! N/ z7 Y& t6 w, P, M2 z 按下8 ) y8 h/ A* l- r7 a! } 代码的大致思想如下
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. ^ |
【经验分享】STM32语音识别的智能蓝牙音箱(源程序+原理图+PCB+设计说明书+PPT)
想找个ST芯片
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
技术手册stm32f1xx中的一个小问题
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
微信公众号
手机版