第十一章 ​扩展模块之矩阵按键模块

描述

第一节 硬件解读

不说废话,我们直接看蓝桥杯物联网的扩展的按键模块的原理图:

模块

由上面的图我们可以看出,这是一个2*3的矩阵键盘了,关于矩阵键盘的知识就不再重复了,大家都已经参加物联网的比赛了,这些基础知识也是废话。但是还是要给大家回顾一下,如果按键B3被按下,那就是ROW1和COLUMN3同时为低电平。同理得到,如果ROW1和COLUMN3同时为低电平时,就证明按键B3被按下。

再来看看ROW1,ROW2,COLUMN1等等连接到STM32L017KB的那个引脚,这时我们需要切换到开发板的原理图:

模块

可以得到这种关系:

扩展版之按键

开发板主板

ROW1

PB6

ROW2

PB7

COLUMN1

PB1

COLUMN2

PB0

COLUMN3

PA8

明确了引脚的关系,基本上就可以写代码了。

第一节 环境配置

1,在上一章介绍了OLED,我们本次的STM32CubeMX的配置将在OLED的历程上面修改。这是第一次修改历程,希望大家好好的学习。

2,打开比赛提供的历程,如下图:

模块

模块

3,官方没有勾选上“Debug”。我们重新勾选中。

模块

4,官方的下面的引脚都是没有用到的,我们把它取消选中。

模块

 

模块

5,勾选中扩展模块的按键模块用到的引脚。需要注意的是,PB6和PB7是输入模式,PB0,PB1是输出模式。还要注意的是,PA8是矩阵按键的引脚,也是OLED的引脚,在处理矩阵键盘的时候,把PA8同样配置为输出模式。本次用的是赛点资料包的参考历程,OLED是用的硬件IIC,区别于我们OLED的软件IIC。【这里如果没有看明白,请大家添加我们公众号客服,一对一讲解】如下图:

模块

6,时钟树等等配置不再重复。

第三节 编写代码

1,由于我们是在赛点资源包中修改的程序,大家的MDK的文件目录应该和公子一样。

模块

2,声明数组,用于OLED屏幕的显示。

模块

3,下图中的代码分别是OLED的电源使能函数,延迟函数(很重要,否则可能OLED无法显示),OLED初始化函数,OLED清屏函数和最后两句让OLED显示“KEY TEXT”的函数。

模块

4,接下来是矩阵键盘的函数了。由于部分代码是重复的,公子只注释了一部分,以下代码需要添加到while(1)中,用于扫描矩阵键盘:

模块

模块

模块

5,下载器配置,编译代码,下载代码不再重复。

第四节 实验现象

实验注意事项:

1,程序语句需要位于程序的BEGIN与END之间。

2,利用USB线将电脑USB口与开发板USB1口连接。

3,CN4所有拨码开关必须选择ON DP档,否则无法下载程序。

4,OLED模块与扩展版矩阵键盘模块的PA8引脚冲突,解决方案:OLED配置为硬件IIC,PAB为输出模式。

实验现象:

LD1,LD4常亮。OLED第一行显示“KEY TEXT”。按下矩阵键盘模块,OLED第二行显示键值。

宗旨:

免费的服务,永远的开源

说明:

1.本教程免费,开源,禁止用于任何商业用途,违者必究。

2.本教程版权所属为东莞市东城墨竹公子电子工作室,盗版必究。

3.资料下载请通过以下方式:

微信公众号:撞上电子

CSDN:撞上电子

掘金:撞上电子

今日头条:撞上电子

 

--东莞市东城墨竹公子电子工作室

--墨竹公子

--2021.12.10

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分