扩展模块之矩阵键盘

描述

第一节 硬件解读  

扩展模块和ADC模块是一模一样的,是插在主板上面的,主板的扩展口在ADC章节讲解了,我们完全可以回顾一下:

         adc

主板上扩展板引脚的关系:

扩展板序号

主板引脚

1

5V

2

PB6

3

GND

4

PB7

5

PB1

6

GND

7

PB0

8

PA8

9

VDD_NODE

10

PB4

我们来看看矩阵键盘的引脚的定义:

adc

所以我们可以得到引脚关系如下:

扩展板序号

矩阵键盘模块引脚

2

ROW1

3

GND

4

ROW2

5

COLUMN1

6

GND

7

COLUMN2

8

COLUMN3

我们综合一下:

扩展板序号

主板引脚

矩阵模块引脚

1

5V

 

2

PB6

ROW1

3

GND

GND

4

PB7

ROW2

5

PB1

COLUMN1

6

GND

GND

7

PB0

COLUMN2

8

PA8

COLUMN3

9

VDD_NODE

 

10

PB4

 

说完了引脚的关系,来说说矩阵键盘的原理,以蓝桥杯物联网的矩阵键盘模块为例,先给ROW1和ROW2一个电平,注意:ROW1或者ROW2一定是只允许其中一个引脚在某一时刻为低电平,除该引脚外,其他引脚必定为高电平,因为我们是通过低电平来判断按键被按下的。然后单片机不断读取COLUMN1,COLUMN2和COLUMN3的引脚。如果在ROW1为低电平,ROW2为高电平的情况下,读取COLUMN2为低电平,则代表B2被按下。

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

adc

第二节 CubeMX配置  

第一步:配置PA8【注意:PA8和OLED的引脚重复】,PB0,PB1为输出模式,初始化为低电平,并配置用户标签,如下图:

adc

第二步:配置PB6(ROW_1)和PB7(ROW_2)为输入模式,上拉,并配置用户标签,如下图:

adc

         
 

注意:主板上使用了矩阵键盘模块,将在CubeMX中取消ADC模块的配置,在MDK代码中也要删除,否则会报错;另外,PA8是矩阵键盘的引脚,同样也是OLED的引脚,所以,矩阵键盘和OLED不会同时在一个项目中,除非矩阵键盘摒弃PA8,让PA8为OLED引脚。

第三节 MDK代码  

第一步:以下是矩阵键盘的读按键函数,如下图:

adc

adc

adc

adc

第三步:读取按键键值,如下图:

adc

 

第四节 实验现象   

注意:

1,请用USB线连接电脑与开发板。

2,请选择A开发板。

现象:

1,继电器K1和K2吸合。

2,LED灯LD5亮。

3,按下矩阵键盘,串口(波特率9600,HEX模式)发送键值。

 

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

全部0条评论

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

×
20
完善资料,
赚取积分