stm32矩阵键盘(扫描模式)

因为最近开发一个项目需要用到3*4的矩阵键盘,所以我就写了一下相关的矩阵键盘的内容,分享出来供大家参考。

特别感谢:Yeah__binbin

我所用到的矩阵键盘是3*4的矩阵键盘实物图如下

stm32矩阵键盘(扫描模式)_第1张图片

其中是4行3列,示意图如下

stm32矩阵键盘(扫描模式)_第2张图片

采用循环扫描的方式主要是应用while循环来进行,优点是可以进行快速反应,缺点是占用较多的机时,CPU卡在这个循环里出不来。

具体的思想就是通过变换GPIO的引脚电平来读取具体是哪个按键被按下。

首先是将行中连接的引脚设置为上拉输入模式,将列中引脚设置为推挽输出模式,并将列的引脚都定义为低电平。

如果有按键按下,行输入就会得到低电平信号,就可以确定是哪一行的按键被按下。当测出哪一行的按键被按下后,再反过来,将行的引脚都设置为推挽输出模式,定义为高电平;将列的引脚都设置为下拉输入模式。

这样再通过列的扫描,如果列得到高电平,就可以确定是哪一列的按键被按下。通过两次循环扫描可以定位到具体是哪个按键按下,返回键值后就可以进行后续操作。

效果图

stm32矩阵键盘(扫描模式)_第3张图片

按下#号键

stm32矩阵键盘(扫描模式)_第4张图片

按下7

stm32矩阵键盘(扫描模式)_第5张图片

按下8

代码的大致思想如下

stm32矩阵键盘(扫描模式)_第6张图片

stm32矩阵键盘(扫描模式)_第7张图片

源码连接:stm32矩阵键盘(扫描)-嵌入式文档类资源-CSDN下载stm32矩阵键盘,用循环扫描的方式来进行识别键值,并在oled屏幕上显示,下载资源中有连接图和视频更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/nbbskk/85379893 

 

 

 

 

 

你可能感兴趣的:(成熟代码,单片机,c语言,stm32,arm)