第一节 硬件解读
不说废话,我们直接看蓝桥杯物联网的扩展的按键模块的原理图:
由上面的图我们可以看出,这是一个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
全部0条评论
快来发表一下你的评论吧 !