一、实物图

二、开发流程

分析:对于矩阵按键,我们一般采用行列扫描反转的方法进行开发,分别把每一个引脚连接一个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----矩阵按键相关推荐

  1. STM32矩阵按键扫描冲突问题

    最近做了一个项目,有个部分用到了矩阵扫描的原理,要检测按键是否按下去执行一个动作.一开始硬件工程师的原理图实现是设计成传统矩阵按键方式,大致原理如下所示: 这种硬件实现方式当去检测单个按下.一整行按下 ...

  2. STM32 4*4矩阵按键

    本文章讲述了如何用STM32编写4*4矩阵按键程序,先简单介绍一下扫描的基本方法:1.反转法 2.行列扫描.本文主要介绍行列扫描 欢迎加入嵌入式学习群:559601187 (一)代码如下 /***** ...

  3. STM32的矩阵按键程序思路

    一:开个头 之前学52的时候学过矩阵按键的程序,但是当我第一次拿到32板子写程序的时候还是有一点懵,不过还来理理思路,感觉想一想还是可以写出来的,我这次是没有自己去焊矩阵按键,而是买了一个薄膜按键,省 ...

  4. 4x4矩阵键盘工作原理及扫描程序_单片机人机交互矩阵按键

    按键是一种常开型按钮开关,与单片机的常见接法如图所示.按键未按下时两个触点断开,单片机I/O口输入高电平:当按键闭合时,I/O口输入低电平. 一.按键讲解 当I/O口为P0口时,由于没有内部上拉电阻, ...

  5. STM32F103 矩阵键盘4*4 16*16等任意矩阵 按键扫描程序

    基于STM32的按键扫描测试程序(学习记录): 目录: 源码: 4x4按键原理: 按键扫描逻辑: Tips: 粘贴代码时,粘贴在源文件存放的位置中(如:HARDWARE中的.c和.h文件),用C++编 ...

  6. 单片机怎么跳出循环_自学单片机第二十七篇:矩阵按键的硬件测试

    我们继续来说矩阵按键的问题,这次是用在实际电路中的.在仿真中我们没有发现问题,但是文章最后我提出了,这个电路在实际应用中一定是存在问题的,那么问题在哪里呢? 这是我们分析的电路. 前几篇我们也对硬件进 ...

  7. 4*4矩阵按键控制数码管显示0-F

    4*4矩阵按键原理图如下: 根据原理图,汇编程序代码如下: 4*4矩阵按键控制数码管显示0-F.刚学单片机汇编,是根据单片机C语言思路来写的,写的不好,如果发现有错误或会导致程序跑飞的,麻烦帮我指出, ...

  8. 计算机键盘是编码键盘还是非编码键盘,矩阵按键原理图_矩阵按键扫描实例

    键盘分编码键盘和非编码键盘.键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘.而靠软件编程来识别的称为非编码键盘. 在一般嵌入式应用中,用的最多的是非编码键盘 ...

  9. 矩阵键盘程序_独立按键与矩阵按键

    一.独立按键原理 按键在闭合和断开时,触点会存在抖动现象 硬件消抖电路 独立按键控制程 二.独立按键控制程序 #include "reg52.h" typedef unsigned ...

  10. 单片机矩阵消抖延时c语言,单片机矩阵按键定时器消抖程序源码

    芯片是采用的stc89c51单片机. 下面是矩阵键盘的电路图,矩阵键盘是接在p2口的. 下面是单片机部分的图,数码管显示等完整的原理图可以从http://www.51hei.com/f/ks51.pd ...

最新文章

  1. Spring 多数据源事务配置问题
  2. Linux distributions —— 可安全安装套件,Linux发布商套件
  3. macbook 移动硬盘无法写入_如何升级MacBook笔记本的SSD硬盘-菜鸟折腾系列一
  4. word List 21
  5. WIFI vs 无线网
  6. 时光老人的飞鸽传书下载
  7. [jQuery基础] jQuery节点操作
  8. Android学习笔记19-ImageView实现图片适屏与裁剪
  9. Spark学习之Spark Streaming(9)
  10. 荒芜的周六-PHP之面向对象(三)
  11. JAVA-Hibernate-SQL类型映射表及Hibernate标识生成策略
  12. Latex定宽单栏长表格(双栏环境)
  13. word选择性粘贴没有HTML选项,Word选择性粘贴如何使用?Word选择性粘贴的快捷键是什么?...
  14. 数据清洗中的缺失值处理
  15. ROS pgm转jpg
  16. excel表格打印每页都有表头_EXCEL打印小技巧:如何打印出每张纸上都有表头标题的表格?...
  17. BP神经网络实现实例1曲线拟合
  18. Leetcode 858. 镜面反射 Python解法
  19. 世界名校排名2020
  20. python的py、pyc、pyo、pyd文件区别

热门文章

  1. ExtMail 参数配置指导
  2. 卡尔曼滤波算法及其应用
  3. how to use 1checker_vim command
  4. ss命令在linux上的安装
  5. k8s之常用操作命令
  6. 数据库管理系统(DBMS)
  7. 知识付费与内容付费的区别
  8. python读取odb_abaqus通过python从ODB中抽取模型数据和结果数据.pdf
  9. 免费的pdf编辑软件
  10. html页面实现英中语言选择,js代码实现网站中英文相互翻译