STM32----矩阵按键
一、实物图
二、开发流程
分析:对于矩阵按键,我们一般采用行列扫描反转的方法进行开发,分别把每一个引脚连接一个GPIO口并设置一半成通用推挽输出模式,一半为上拉输入模式,行列扫描反转进行判断按击的按键来判断行列从而确定按键位置。
具体流程:
1.将输出模式的四个位置输出低电平 PA0-PA3上拉输入,PA4-PA7推挽输出(置低)
2.判断PA口的低四位是否为0xF ------- 注意按键的去抖动
是:没有按键被按下
否:有按键按下 分为:
key = GPIOA->IDR & 0xF;if(key != 0xF){switch(key){case 0xE: val = 1; break; //这里局具体是几要看自己的接线关系case 0xD: val = 5; break;case 0xB: val = 9; break;case 0x7: val = 13; break;default: break;}}
3.进行行列反转 将上面的PA0-PA3设置成输出,PA4-PA7设置成上拉输入
4.判断PA口的高四位是否为0xF0 ------- 注意按键的去抖动
是:没有按键被按下
否:有按键按下 分为:
key = GPIOA->IDR & 0xF0;if(key != 0xF0){switch(key){case 0xE0: val += 0; break;case 0xD0: val += 1; break;case 0xB0: val += 2; break;case 0x70: val += 3; break;default: break;}}
5.通过按键的叠加的模式判断键值具体是多少
注意按键抬起,在进行返回键值操作,可以省去很多麻烦。(循环判断这种)
while((GPIOA->IDR & 0xF0) != 0xF0);return val;
通过return 的val数值就可以判断键值是多少。
STM32----矩阵按键相关推荐
- STM32矩阵按键扫描冲突问题
最近做了一个项目,有个部分用到了矩阵扫描的原理,要检测按键是否按下去执行一个动作.一开始硬件工程师的原理图实现是设计成传统矩阵按键方式,大致原理如下所示: 这种硬件实现方式当去检测单个按下.一整行按下 ...
- STM32 4*4矩阵按键
本文章讲述了如何用STM32编写4*4矩阵按键程序,先简单介绍一下扫描的基本方法:1.反转法 2.行列扫描.本文主要介绍行列扫描 欢迎加入嵌入式学习群:559601187 (一)代码如下 /***** ...
- STM32的矩阵按键程序思路
一:开个头 之前学52的时候学过矩阵按键的程序,但是当我第一次拿到32板子写程序的时候还是有一点懵,不过还来理理思路,感觉想一想还是可以写出来的,我这次是没有自己去焊矩阵按键,而是买了一个薄膜按键,省 ...
- 4x4矩阵键盘工作原理及扫描程序_单片机人机交互矩阵按键
按键是一种常开型按钮开关,与单片机的常见接法如图所示.按键未按下时两个触点断开,单片机I/O口输入高电平:当按键闭合时,I/O口输入低电平. 一.按键讲解 当I/O口为P0口时,由于没有内部上拉电阻, ...
- STM32F103 矩阵键盘4*4 16*16等任意矩阵 按键扫描程序
基于STM32的按键扫描测试程序(学习记录): 目录: 源码: 4x4按键原理: 按键扫描逻辑: Tips: 粘贴代码时,粘贴在源文件存放的位置中(如:HARDWARE中的.c和.h文件),用C++编 ...
- 单片机怎么跳出循环_自学单片机第二十七篇:矩阵按键的硬件测试
我们继续来说矩阵按键的问题,这次是用在实际电路中的.在仿真中我们没有发现问题,但是文章最后我提出了,这个电路在实际应用中一定是存在问题的,那么问题在哪里呢? 这是我们分析的电路. 前几篇我们也对硬件进 ...
- 4*4矩阵按键控制数码管显示0-F
4*4矩阵按键原理图如下: 根据原理图,汇编程序代码如下: 4*4矩阵按键控制数码管显示0-F.刚学单片机汇编,是根据单片机C语言思路来写的,写的不好,如果发现有错误或会导致程序跑飞的,麻烦帮我指出, ...
- 计算机键盘是编码键盘还是非编码键盘,矩阵按键原理图_矩阵按键扫描实例
键盘分编码键盘和非编码键盘.键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘.而靠软件编程来识别的称为非编码键盘. 在一般嵌入式应用中,用的最多的是非编码键盘 ...
- 矩阵键盘程序_独立按键与矩阵按键
一.独立按键原理 按键在闭合和断开时,触点会存在抖动现象 硬件消抖电路 独立按键控制程 二.独立按键控制程序 #include "reg52.h" typedef unsigned ...
- 单片机矩阵消抖延时c语言,单片机矩阵按键定时器消抖程序源码
芯片是采用的stc89c51单片机. 下面是矩阵键盘的电路图,矩阵键盘是接在p2口的. 下面是单片机部分的图,数码管显示等完整的原理图可以从http://www.51hei.com/f/ks51.pd ...
最新文章
- Spring 多数据源事务配置问题
- Linux distributions —— 可安全安装套件,Linux发布商套件
- macbook 移动硬盘无法写入_如何升级MacBook笔记本的SSD硬盘-菜鸟折腾系列一
- word List 21
- WIFI vs 无线网
- 时光老人的飞鸽传书下载
- [jQuery基础] jQuery节点操作
- Android学习笔记19-ImageView实现图片适屏与裁剪
- Spark学习之Spark Streaming(9)
- 荒芜的周六-PHP之面向对象(三)
- JAVA-Hibernate-SQL类型映射表及Hibernate标识生成策略
- Latex定宽单栏长表格(双栏环境)
- word选择性粘贴没有HTML选项,Word选择性粘贴如何使用?Word选择性粘贴的快捷键是什么?...
- 数据清洗中的缺失值处理
- ROS pgm转jpg
- excel表格打印每页都有表头_EXCEL打印小技巧:如何打印出每张纸上都有表头标题的表格?...
- BP神经网络实现实例1曲线拟合
- Leetcode 858. 镜面反射 Python解法
- 世界名校排名2020
- python的py、pyc、pyo、pyd文件区别