深入解析:STM32——按钮实验

news/2026/1/24 17:51:34/文章来源:https://www.cnblogs.com/yangykaifa/p/19527192

使用一枚按钮去切换板载led的亮灭状态,每按下一次按钮,板载led的亮灭状态切换一次。

软件部分

板载led连接PC13,采用开漏接法(上面的MOS一直断开),PA0接按钮,把PA0设置为输入上拉模式。松开按钮PA0被上拉电阻拉到高电压,按下按钮,PA0通过按钮接地。当我们按下按钮的时候led亮灭状态没有变化,当松开时候才有变化。

因此需要捕捉按钮变化的瞬间,pre保存按钮上一次的值,cur保存按钮当前的值,然后使用蓝色虚线保持当前时刻,不断更新pre和cur的值,当pre和cur相等,代表按钮状态没有变化,pre和cur不相等,表示捕捉到按钮变化瞬间。接着进一步判断,捕捉到了按钮按下还是抬起的动作。如果像现在这样,cur=0,则表示按钮按下,反之,按钮松开。

首先声明两个变量:pre和cur,0表示按下,1表示松开,给pre和cur都赋初值1,表示按钮是松开的。在while循环内部,不断更新pre和cur,pre就是上一个时刻cur的值,直接赋值更新, cur的值就是读取PA0引脚状态,调用HAL_GPIO_ReadPin读取PA0的电压,要是读到高电压cur=1,反之为0。接着判断pre和cur是否相等,不相等说明捕捉到了按钮变化瞬间,进一步判断是按钮按下还是抬起,cur=0为按下,反之为抬起。

需要达到的效果是,按下按钮的时候led状态保持不变,抬起按钮瞬间,led切换亮灭状态,因此,应该把切换led亮灭的代码写在else里面。运用led_state保持led当前状态,0表示熄灭,1表示点亮。如果当前led点亮,就熄灭,并更新led_state的值,假设led熄灭,就点亮,也更新led_state的值。

把这些代码烧录进单片机,有时候会发现代码失灵,这是由于按键抖动引起的,使用软件进行消抖,在理想情况下,当按下按钮,引脚上的电压从高电压变成低电压,当松开按钮,引脚上的电压从高电压变成低电压,但实际上,按钮存在抖动,会造成多次触发,而按钮的抖动时间,一般不会超过10ms,因此,监测到按钮动作之后,延迟10ms就可以了。

硬件部分

参考这篇文章,写得特殊好

深度解析嵌入式开发中的按键去抖技巧 – 吴川斌的博客

提炼重点写在这里,在使用单掷开关时,采用RC网络后接施密特反向触发器构建硬件上的消抖,开关松开处在稳定状态时,A处电平被拉高为高电平,施密特触发器输出低电平。当按钮按下时,电容通过R41放电, A处的电压从高电平下降到低电平,放电时长由RC控制,在A处电压降低到施密特反向触发器的低电平阈值Vth-后,输出Y翻转为高电平,这个放电时长刚好弥补了按钮的跳变时间,所以奏效实现了硬件的消抖。按钮松开同理,这里不再次赘述。

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

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

相关文章

论文答辩时,评审组导师一旦开始问问题,通常会问哪些问题?

先说一句你可能不爱听、但非常重要的话:评审组导师一问问题, 其实已经在心里对你的论文有了一个初步判断。接下来的提问, 不是临时发挥, 而是围绕几个固定维度,快速确认三件事:这篇论文是不是你真正理解的研…

多线程核心知识

多线程核心知识 1. 线程的创建方式继承Thread方法:继承 java.lang.Thread 类,重写 run() 方法。 启动:创建子类实例,调用其 start() 方法。 特点:简单,但Java单继承限制了扩展性。class MyThread extends Thread…

2025年有实力的户外led大屏广告公司承包商找哪家,公交广告/地铁广告/广播电台广告,户外led大屏广告公司排行

随着城市数字化进程加速,户外LED大屏广告凭借高曝光、强互动、精准触达的特性,成为品牌抢占消费者心智的核心战场。据行业数据显示,2024年全国户外LED广告市场规模突破1200亿元,其中一线及新一线城市占比超60%,但…

一个月内面了30家公司,薪资从18K变成28K,真行啊····

工作3年,换了好几份工作(行业流行性大),每次工作都是裸辞。朋友都觉得不可思议。因为我一直对自己很有信心,而且特别不喜欢请假面试,对自己负责也对公司负责。 但是这次没想到市场环境非常不好,…

面了十几家公司测试岗,我终于悟了,面试无非就是这些题

测试岗的面试其实都是大同小异的,这里我收集整理了185道高频面试题,希望对在找工作或者准备跳槽的各位小伙伴有所帮助! 一. 测试基础 1.如何制定测试计划 参考答案: 测试计划包括测试目标、测试范围、测试环境的说明、测试类型…

2026年深圳企业邮箱注册公司推荐:深圳市聚诚在线科技有限公司,企业邮箱/企业域名/网易企业邮箱/企业邮箱管理公司精选

在全球电子通信技术日新月异的背景下,企业邮箱的效能边界不断拓展,其技术架构已从单一邮件服务器发展为整合云存储、协同办公与安全审计的综合性通信中台。 一份行业报告显示,企业邮箱的安全防护等级提升直接作用于…

嵌入式 C++ 高性能流式架构的设计

嵌入式 C 高性能流式架构的设计 摘要:在算力受限的嵌入式 SoC 平台上,高带宽传感器数据的实时处理是一个挑战。传统的基于多线程与操作系统原语的架构,往往受限于调度抖动、内存拷贝开销及锁竞争。 本文提出了一种平台无关的**“流式架构&am…

河南鑫味源之源:匠心调味,香飘万家 docx

河南鑫味源之源:匠心调味,香飘万家河南鑫味源之源:匠心调味,香飘万家在被誉为 “中国最有香味的城市” 的河南驻马店,调味品产业高地蓬勃崛起。这里孕育了王守义十三香等国民品牌,更诞生了坚守匠心的新锐企业 —…

主流GEO服务商能力全景图谱,垂直行业GEO解决方案商

随着用户信息获取习惯从传统搜索引擎向DeepSeek、豆包、Kimi等生成式AI平台迁移,AI问答已成为To B企业不可忽视的新流量入口。当前主流AI平台虽未开放官方广告系统,但通过生成式引擎优化(GEO)技术,企业可使其品牌…

2026高中辅导大揭秘:靠谱机构全解析

2026高中辅导大揭秘:靠谱机构全解析一、高中辅导的重要性 高中,无疑是学生求学生涯中至关重要的阶段。在这个时期,学业负担陡然加重,九门科目齐头并进,每一门都不容有失 ,对学生的综合能力和时间管理能力提出了巨…

河南鑫味源之源调味品:豫南味魂,调出百味鲜香

河南鑫味源之源调味品:豫南味魂,调出百味鲜香引言:豫南沃土崛起河南调味品新锐力量在 “中原粮仓”“芝麻王国” 河南驻马店,河南鑫味源之源调味品有限公司于 2018 年 7 月 10 日成立,注册资金 398 万元。企业深耕…

2026年湖北短视频拍摄制作服务商权威推荐榜:短视频运营 /短视频拍摄 /短视频拍摄运营 /短视频运营方案 /短视频拍摄合作 /短视频运营技巧服务商精选

黄石市商务局公布的一份官方名单中,从电商产品设计到短视频拍摄制作,首批15家精选企业覆盖了产业从内容到渠道的全链条。 在短视频主导的营销时代,超过85%的互联网用户通过短视频获取信息。如何选择一家既能把握创意…

河南鑫味源之源调味品:大盘鸡料领衔 豫味调味新标杆

河南鑫味源之源调味品:大盘鸡料领衔 豫味调味新标杆在 “芝麻之乡” 河南驻马店,河南鑫味源之源调味品有限公司以 398 万元注册资金为基石,自 2018 年 7 月 10 日成立以来,便扎根泌阳这片农产品沃土,成为河南调味…

Claude Code SKill

Claude Code SKill Skill的实现以及指令 让我们来抓包Claude Code的请求, 看看Claude Skill的实现吧{"name": "Skill","description": "Execute a skill within the main conversa…

高中辅导哪家靠谱?这篇攻略帮你避开90%的坑

高中辅导哪家靠谱?这篇攻略帮你避开90%的坑一、家长必看:高中辅导机构选择的核心逻辑 在孩子的高中学习阶段,家长们往往为如何选择靠谱的辅导机构而绞尽脑汁。一个好的辅导机构,不仅能帮助孩子提升成绩,更能塑造他…

OFFSET动态可视化:WPS表格灵活提取多行多列数据

一、问题的提出 日常工作中经常需要从结构化报表中查询并提取特定公司的多期数据。例如:在月度销售报表中,根据公司名称动态返回其1-6月的详细数据。这种需求常见于经营分析、数据看板及报告生成等场景。 假设有一张公司月度数据表,A列为公司…

读研方法-2026

文献综述 ① 读综述起手,快速扫清盲区 构建文献图谱-Connected Papers | Find and explore academic papers 提供真实文献的-Paper Digest – AI-Powered Research Platform 知网-硕博论文综述部分-中国知网 边看边记,构建自己的关键词语录&#xff…

Device (P2P0)下的子节点Device (S7F0)不存在

Device (P2P0)下的子节点Device (S7F0)不存在dsdt.dsl:6096: Device (P2P0) dsdt.dsl:6306: Device (S1F0) dsdt.dsl:6338: Device (S2F0) dsdt.dsl:6370: Device (S3F0) dsdt.dsl:6402: Device (S4F0…

2025 网安就业指南!国数基安全紧缺,内网渗透 / AI 安全缺口 200 万

2025网络安全就业指南:对接国家数据基础设施安全需求,内网渗透/AI安全方向最紧缺,200万缺口待补! 2025年网络安全就业指南:人才缺口超200万,这些方向最吃香 在数字经济时代,网络安全早已不是“…

重跑五国

等待10几秒后, 会出现 login 字眼,此时我们鼠标点到黑框里面,输入账号 “root”,回车 , 输入密码 “123456” 回车, 注意输入密码时不会显示,直接输就行了。 提示 : 要鼠标退出虚拟机,直接按下Ctrl+Alt 就会跳…