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

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

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

可以接收到数据。

相关推荐
工业通讯探索者1 小时前
数据采集器在轴承温度与振动远程监控中的应用
物联网·数据采集·边缘计算网关·工业智能网关·4g远程网关
NEWEVA__zzera221 小时前
在写外部FLASH的应用时发现一些问题,在这里分享一下我的想法
c语言·经验分享·单片机
hlpinghcg2 小时前
CanFestival移植到STM32G4
stm32·canopen
passer__jw7672 小时前
【51单片机】1. 基础点灯大师
单片机·51单片机
꧁坚持很酷꧂2 小时前
FreeRTOS学习01_移植FreeRTOS到STM32(图文详解)
stm32·嵌入式硬件·学习
Moonnnn.8 小时前
【单片机期末】单片机系统设计
笔记·单片机·嵌入式硬件·学习
c7_ln13 小时前
I2C 外设知识体系:从基础到 STM32 硬件实现
stm32·单片机·嵌入式硬件
SY师弟13 小时前
51单片机——计分器
c语言·c++·单片机·嵌入式硬件·51单片机·嵌入式
wuqingshun31415913 小时前
蓝桥杯 冶炼金属
算法·职场和发展·蓝桥杯
深圳市青牛科技实业有限公司 小芋圆14 小时前
GC1809:高性能音频接收与转换芯片
科技·单片机·嵌入式硬件·音视频·智能家居·新能源