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

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

  • [第一节 硬件解读](#第一节 硬件解读)
  • [第二节 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函数代码:

可以接收到数据。

相关推荐
点灯小铭5 小时前
基于单片机的多功能LCD音乐播放器设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
shansz20206 小时前
暂时无法解决的关于STM32F103的RTC日期更新问题
stm32·嵌入式硬件·实时音视频
2501_927773076 小时前
嵌入式——时序IIC
单片机·嵌入式硬件
代码雕刻家8 小时前
2.4.蓝桥杯-分巧克力
算法·蓝桥杯
项目題供诗10 小时前
51单片机入门(七)
单片机·嵌入式硬件·51单片机
来自晴朗的明天10 小时前
1、光耦隔离电路
单片机·嵌入式硬件·硬件工程
养军博客11 小时前
信息导论 物联网(internet of tings)
物联网
国科安芯11 小时前
面向星载芯片原子钟的RISC-V架构MCU抗辐照特性研究及可靠性分析
单片机·嵌入式硬件·架构·制造·risc-v·pcb工艺·安全性测试
三伏52212 小时前
Cortex-M3权威指南Cn第十章——笔记
笔记·单片机·嵌入式硬件·cortex-m3
独处东汉12 小时前
freertos开发空气检测仪之按键输入事件管理系统设计与实现
人工智能·stm32·单片机·嵌入式硬件·unity