【STM32CubeMX(3)】GPIO上拉输入——读取按键状态

通过本节可以学习到:

  • 如何在CubeMX配置上拉输入
  • 什么是上拉输入
  • 如何读取一个GPIO的输入状态

软件环境:

STM32CubeMX version6.10.0
Keil_v5(MDK-ARM) version 5.32

硬件环境:

STM32F103C8T6最小系统板(所有STM32通用下文操作)

关于上拉输入

GPIO上拉输入是一种输入模式,用于连接外部设备到微控制器或单片机的GPIO引脚上。当GPIO引脚处于上拉输入模式时,如果外部设备未连接到该引脚或者外部设备处于高阻态时,微控制器内部会通过一个较大的电阻(上拉电阻)将引脚拉高到逻辑高电平(一般为VCC电压),以确保引脚的电平为确定的逻辑状态。这样设计的目的是为了避免引脚漂移或噪声导致的不确定状态。

与上拉输入相对应的是下拉输入,它与上拉输入的原理类似,但是在外部设备未连接或处于高阻态时,微控制器内部会通过一个较大的电阻(下拉电阻)将引脚拉低到逻辑低电平(一般为地电压)。

如果GPIO引脚既不采用上拉输入也不采用下拉输入,那么它就是一个普通的输入引脚,需要外部设备提供明确的电平信号,否则引脚的状态将是不确定的,容易受到外部干扰的影响。

总的来说,上拉输入、下拉输入和普通输入之间的区别在于微控制器在引脚未连接外部设备或外部设备处于高阻态时,微控制器内部如何拉高或拉低引脚的电平以确保引脚的电平状态。

1、通过CubeMX完成外设初始化

基于【STM32CubeMX(1)】GPIO推挽输出——点亮第一个LED灯继续实现按键的输入状态判断,因此其他配置请移步。
在这里插入图片描述

2、通过MDK-ARM完成外设功能实现

本节仅是验证上拉输入实现按键控制LED灯的翻转,故按键判断采用低效的CPU延时消抖

if(HAL_GPIO_ReadPin(KEY1_GPIO_Port, KEY1_Pin)==GPIO_PIN_RESET)//按键被按下{HAL_Delay(10);//延时消抖if(HAL_GPIO_ReadPin(KEY1_GPIO_Port, KEY1_Pin)==GPIO_PIN_RESET){while(1){HAL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin);HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin);HAL_Delay(100);}}}	

在这里插入图片描述
3、单片机效果演示
在这里插入图片描述

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

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

相关文章

基于双vip+GTID的半同步主从复制集群项目(MySQL集群)

项目标题:基于keepalivedGTID的半同步主从复制MySQL集群 准备七台机器,其中有四台时MySQL服务器,搭建主从复制的集群,一个master,2个slave服务器,一个延迟备份服务器。同时延迟备份服务器也可以充当异地备…

软件测试基础理论、测试用例及设计方法、易混淆概念总结【软件测试】

一.软件测试基础理论 1.软件定义 软件是计算机系统中与硬件相互依存的一部分,包括程序、数据以及与其相关文档 的完整集合。 程序是按事先设计的功能和性能要求执行的指令序列; 数据是使程序能正常操作信息的数据结构; 文档是与程序开发、维…

MongoDB Atlas维护指南:常见类型、注意事项与窗口设置

为了给Atlas用户更好的产品体验,MongoDB产品团队会进行定期维护。 本文将会介绍: 常见维护项目种类及频率,注意事项维护期间的影响及建议维护窗口设置说明维护告警设置和邮件通知范例 维护窗口常见项目 定期SSL证书轮换软件升级&#xff…

金三银四面试题(一):JVM类加载与垃圾回收

面试过程中最经典的一题: 请你讲讲在JVM中类的加载过程以及垃圾回收? 加载过程 当Java虚拟机(JVM)启动时,它会通过类加载器(ClassLoader)加载Java类到内存中。类加载是Java程序运行的重要组成…

WhatsApp被封如何解封?附账号防封技巧

相信各位小伙伴已经发现,WhatsApp新一轮风控已经启动,不少小伙伴已经受到封号潮的冲击。无论是老号还是新号都难以幸免。为了防止WhatsApp客户数据和聊天信息的丢失,针对封号的防封攻略请收藏! 一、WhatsApp被封的8个原因 1、被过…

搭建企业微信知识库,这些注意事项你必须知道

| 企业微信知识库是什么? 简单来说,企业微信知识库就是一个集中存储、管理和分享企业内部信息的置于企业微信中的系统。你可以把它想象成一个超级大的“资料库”,里面装满了公司的各种知识、文档、流程、经验等等。这个“资料库”不仅方便员工…

篮球论坛系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW,文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文(设计)学生选题参考合集推荐收藏(包含Springboot、jsp、ssmvue等技术项目合集) 目录 1. …

八大技术趋势案例(人工智能物联网)

科技巨变,未来已来,八大技术趋势引领数字化时代。信息技术的迅猛发展,深刻改变了我们的生活、工作和生产方式。人工智能、物联网、云计算、大数据、虚拟现实、增强现实、区块链、量子计算等新兴技术在各行各业得到广泛应用,为各个领域带来了新的活力和变革。 为了更好地了解…

酒店能源监测管理系统:实现节能减排与提升管理效率的利器

随着全球能源问题的日益突出和可持续发展理念的深入人心,酒店业也在积极探索节能减排的途径。在这一背景下,酒店能源监测管理系统应运而生,成为了酒店行业提升管理效率、降低能源消耗的重要工具。本文将从多个角度介绍酒店能源监测管理系统的…

qt学习第三天,qt设计师的第一个简单案例

3月25,应用qt设计师,手动设计界面形状 ​ 如何启动qt设计师,找到对应的安装地点,对应你自己安装的pyside6或其他qt的安装路径来找 ​ 应用qt设计师的优点是不用敲代码然后慢慢调节框框大小,位置等、可以直接修改…

6.RGB转YCbcr

1.方法 RGB转灰度有很多种方式   1.将RGB中任意分量拿出来当做灰度值。   2.取RGB三通道的均值来当灰度值。   3.将RGB转YUV(YCbCr)然后取Y分量作为灰度值。   其余的几种实现方式较为简单,这里不做介绍。重点实现RGB转YCbCr。 1.1 YUV(YCbCr)格式 Y表示亮…

【检索增强】Retrieval-Augmented Generation for Large Language Models:A Survey

简述 本文将RAG搜索范式分成了三类:朴素RAG、高级RAG和模块化RAG 从模块化RAG来看,朴素RAG是只有读取和检索模块,高级RAG除了朴素RAG中的读取和检索模块外,还具有重写和重排模块。 从某种程度上来说,朴素RAG是高级RA…