蓝桥杯【物联网】零基础到国奖之路:十六. 扩展模块之矩阵按键

蓝桥杯【物联网】零基础到国奖之路:十六. 扩展模块之矩阵按键

  • [第一节 硬件解读](#第一节 硬件解读)
  • [第二节 CubeMX配置](#第二节 CubeMX配置)
  • [第三节 MDK代码](#第三节 MDK代码)

第一节 硬件解读

扩展模块和ADC模块是一摸一样的,插在主板上。

引脚对应关系:

PB6-ROW1

PB7-ROW2

PB1-COLUMN1

PB0-COLUMN2

PA8-COLUMN3

矩阵键盘原理,如上,先给ROW1和2一个电平,**ROW1和2一定是只允许其中一个引脚在某一时刻为低电平,除该引脚外,其他引脚必定为高电平,因为我们是通过低电平判断按键被按下的。**然后单片机不断读取COLUMN1,2,3的引脚。如果在ROW1为低电平,ROW2为高电平的情况下,读取COLUMN2为低电平,则代表B2被按下。

注意:在CubeMX配置和MDK代码中,我们先给COLUMN1,2,3一个电平,然后读取ROW1和ROW2的电平。

第二节 CubeMX配置

先配置PB0 PB1为输出模式,初始化为低电平。

之后配置PB6,7为输入模式,上拉。

注意:PA8是矩阵按键的引脚,同样是OLED引脚,所以矩阵键盘的B3和B6不会同时出现在一个项目中。配置PA8为矩阵键盘还是OLED,参考题目。

第三节 MDK代码

编写代码

先定义一个value值,写第一个column(竖行)为低电平,另一个为高电平。之后读取ROW(横行)是否为低电平,是就代表被按下,更新value值,注意消抖和释放按键。之后再写第二个column(竖行)为低电平,重复操作,最后返回value值。

编写main函数代码:

可以接收到数据。

相关推荐
加成BUFF4 分钟前
机器人专业2025年12月5日《嵌入式系统STM32》期末考试范围+试卷
stm32·嵌入式·期末复习
雪度娃娃34 分钟前
存储器层次结构——随机访问存储器
单片机·嵌入式硬件·计算机组成原理
少年潜行2 小时前
ESP01S使用笔记05--ESP01S 进行 MQTT 通信 发送 JSON 字符串遇到的问题
单片机
TDengine (老段)2 小时前
TDengine Commit 与 Flush 机制 — 从内存到磁盘的数据落盘全流程
大数据·数据库·物联网·架构·时序数据库·iot·tdengine
WHS-_-20222 小时前
When RDMA Meets Wireless
arm开发
项目題供诗2 小时前
STM32-PWM驱动LED呼吸灯&PWM驱动直流电机(十三)
stm32·单片机·嵌入式硬件
不脱发的程序猿2 小时前
如何让Skill同时跑在Cursor、Codex和Claude Code里?
单片机·嵌入式硬件·嵌入式
longxiangam3 小时前
esp-idf dsi 屏幕的驱动实现原理—— 关于零拷贝和 DMA 永续刷新
c语言·单片机·嵌入式硬件
星夜夏空993 小时前
FreeRTOS学习(6)——任务创建
单片机·嵌入式硬件·学习
Yeats_Liao4 小时前
好复杂的 IoT 世界:工业数据采集技术栈全景解析
java·物联网·struts