蓝桥杯【物联网】零基础到国奖之路:十六. 扩展模块之矩阵按键

蓝桥杯【物联网】零基础到国奖之路:十六. 扩展模块之矩阵按键

  • 第一节 硬件解读
  • 第二节 CubeMX配置
  • 第三节 MDK代码

第一节 硬件解读

扩展模块和ADC模块是一摸一样的,插在主板上。
引脚对应关系:
PB6-ROW1
PB7-ROW2
PB1-COLUMN1
PB0-COLUMN2
PA8-COLUMN3
在这里插入图片描述
矩阵键盘原理,如上,先给ROW1和2一个电平,**ROW1和2一定是只允许其中一个引脚在某一时刻为低电平,除该引脚外,其他引脚必定为高电平,因为我们是通过低电平判断按键被按下的。**然后单片机不断读取COLUMN1,2,3的引脚。如果在ROW1为低电平,ROW2为高电平的情况下,读取COLUMN2为低电平,则代表B2被按下。
注意:在CubeMX配置和MDK代码中,我们先给COLUMN1,2,3一个电平,然后读取ROW1和ROW2的电平。

第二节 CubeMX配置

先配置PB0 PB1为输出模式,初始化为低电平。
在这里插入图片描述
之后配置PB6,7为输入模式,上拉。
在这里插入图片描述
注意:PA8是矩阵按键的引脚,同样是OLED引脚,所以矩阵键盘的B3和B6不会同时出现在一个项目中。配置PA8为矩阵键盘还是OLED,参考题目。

第三节 MDK代码

编写代码
在这里插入图片描述
在这里插入图片描述
先定义一个value值,写第一个column(竖行)为低电平,另一个为高电平。之后读取ROW(横行)是否为低电平,是就代表被按下,更新value值,注意消抖和释放按键。之后再写第二个column(竖行)为低电平,重复操作,最后返回value值。
编写main函数代码:
在这里插入图片描述
在这里插入图片描述
可以接收到数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/55900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL 注入漏洞 - 学习手册

0x01:SQL 注入前导知识 0x0101:SQL 注入 —— MySQL 数据库概述 知识速查:SQL 注入前导知识 SQL 注入 —— MySQL 数据库概述 获取数据库名 : select schema_name from information_schema.schemata;获取数据表名 : select table_name from …

adb安装教程(Windows10)

本章教程,主要介绍如何在Windows10操作系统上安装adb。 一、adb简介 ADB,全称为Android Debug Bridge,是Android开发中一个重要的命令行工具。它用于与Android设备进行通信,提供了多种功能来帮助开发者进行调试和应用管理。 二、下…

Qt第三课 ----------显示类的控件属性

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…

Java中的状态机实现:使用Spring State Machine管理复杂状态流转

在软件开发中,我们经常会遇到需要处理各种状态以及状态之间转换的场景。这些状态转换有时会变得非常复杂,特别是当涉及到多个状态,并且每个状态都有多个可能的触发事件导致不同的状态变化时。手动编写这样的逻辑不仅容易出错,而且…

美团Java一面

美团Java一面 9.24一面,已经寄了 收到的第一个面试,表现很不好 spring bean生命周期 作用域(忘完了) 为什么用redis缓存 redis和数据库的缓存一致性问题 redis集群下缓存更新不一致问题 aop说一下 arraylist和linkedlist 数据库的…

kali(专业的渗透测试虚拟机)|kali下载链接地址 |kali安装 |kali部署指南

介绍 kali 是Debian开源linux系统体系下的子分支之一 Debian-kali 扩展:Ubuntu也是Debian开源linux系统体系下的子分支之一 Debian-ubuntu 安装kali 2023.03 稳定版 Index of /kali-images/kali-2023.1/ 安装可以参考他的教程, 写的很详细了…

软件工程系列(1)需求工程

需求工程需求工程是软件开发过程中的关键环节,旨在明确和管理用户需求。其主要步骤包括: 1. 需求获取 方法:访谈、问卷、观察和焦点小组等。目标:理解用户需求,收集功能和非功能需求。2. 需求分析 整理与分类:将收集到的需求进行整理,识别优先级和依赖关系。建模:使用…

C语言-数据结构 折半查找

在折半查找中,刚开始学可能会在下标处产生困惑,例如奇数个长度的数组怎么处理,偶数个长度的数组怎么处理,不需要修改代码吗?并且下标我从1开始算和0开始算影响代码吗?其实都可以用一样的代码,产…

nginx 资料整理(三)- web

nginx 资料整理(三) 1. web服务器1. 日志功能1. 访问日志2. 错误日志3. 实例演示 2. 网站功能列表1. autoindex2. autoindex_localtime 3. 认证功能1. auth_basic2. 实例演示 4. 访问控制功能1. allow & deny2. 局限性3. 实例演示 5. 状态模块1. stu…

论文阅读:Split-Aperture 2-in-1 Computational Cameras (二)

Split-Aperture 2-in-1 Computational Cameras (一) Coded Optics for High Dynamic Range Imaging 接下来,文章介绍了二合一相机在几种场景下的应用,首先是高动态范围成像,现有的快照高动态范围(HDR)成像工作已经证…

多种方式确定Linux是CentOS还是Ubuntu

目录 前言正文 前言 对应的基本知识比较少,以下只是记录总结 由于目前使用的是centos,后续找到linux会对应补充 正文 要确定Linux系统是CentOS还是Ubuntu,可以通过以下几种方式进行分析 一、查看发行版信息文件: CentOS&…

校园系统校园小程序 论坛校园圈系统失物招领、闲置二手、跑腿外卖等校园圈子系统应该具备有哪些功能

针对校园系统、校园小程序、论坛校园圈系统以及失物招领、闲置二手、跑腿外卖等具体功能,一个综合性的校园圈子系统应该具备以下主要功能: 前后端源码查看 一、基础功能 用户注册与登录 提供用户注册和登录功能,支持学生身份验证、手机号验…

chrome 阻止浏览器在表单输入框聚焦/输入时显示保存的密码和账号候选框(Google 密码管理工具)

参考: 完美解决 element-ui inputpassword 在浏览器会自动填充密码的问题 背景: 领导要求去掉登录页的账号密码表单的自动显示账号密码候选框 定位: chrome 版本 126.0.6478.127 , 现有表单用的是原生 input 元素, 之前已经加了 autocomplete"off" 和 readonly …

WireShark过滤器

文章目录 1. **捕获过滤器(Capture Filter)**语法格式:常见捕获过滤器示例: 2. **显示过滤器(Display Filter)**语法格式:常见比较运算符:常见显示过滤器示例:逻辑操作符…

Linux系统:apt-get update 和apt update区别

apt-get update 和apt update区别 ‌apt-get update和apt update的主要区别在于它们所属的命令集以及在现代Ubuntu系统中的使用推荐。‌ ‌所属命令集‌:apt-get update是apt-get命令的一部分,而apt update是apt命令的一部分。apt是apt-get的替代工具&am…

Java面经--从代码角度认识面向对象编程和面向过程编程

1. 思维方式和核心概念 面向过程编程:核心是过程(procedure),即通过函数来组织和实现功能。程序被分为一系列的步骤或过程,数据和功能分离,代码通常是顺序执行的。 面向对象编程:核心是对象&am…

回归涉及的函数

当然可以!以下是你学习笔记中涉及到的函数的详细讲解: 1. 导入必要的库 import: 用于导入所需的库和模块。例如,import numpy as np 导入 NumPy 库并简写为 np。 2. 读取数据 pd.read_csv(temps.csv): 读取指定路径的 CSV 文件&#xff0…

苹果秋季盛典:iPhone 16系列引领未来科技潮流

9月10日,苹果公司在众人瞩目中举办了2024年的秋季特别活动,发布了备受期待的iPhone 16系列。 尽管网络发布会已经持续了一整年,但熬夜观看的果粉们仍然热情不减,因为每一次苹果的新品发布都代表着科技界的一次重大飞跃。 iPhone …

使用C++的OpenSSL 库实现 AES 加密和解密文件

如果C不知道做什么项目,可以编写一个文件加密和解密工具,支持诸如 AES 和 RSA 等常见的加密算法。这样的项目可以帮助学习和理解现代加密技术,并为日常文件保护提供便利。以下是一个基本的设计思路和实现步骤: 1. 设计思路 a. 功…

Android常用组件

目录 1. TextView 控件 常用属性: 1)android:text: 2)android:gravity: 3)android:textSize: 4)android:textColor: 5)android:background: 6)android:padding: 7)android:layout_width 和 andr…