嵌入式按键消抖

发布时间:2026/7/28 20:08:03

嵌入式按键消抖
嵌入式中经常使用按键作为人机交互的接口典型的按键电路如下所示在实际使用过程中由于误触及按键的机械特性按键按下或松开时的输出的波形上会存在抖动一般可以通过增加滤波电容C1进行处理。但是在实际产品应用中尤其是在在一些低功耗、低成本要求的应用场景中会取消滤波电容C1并增大电阻R1的阻值按键按下或送开时的抖动会增大。一、硬件消抖1、IC硬件消抖IC硬件滤波一般依赖与使用硬件平台的GPIO实现。部分MCU的GPIO实现支持硬件滤波功能一般采用高于待采样信号频率的时钟对待采样信号进行多次采样实现。采样周期越长对应的产生误判的概率越下。存在硬件滤波时软件可以直接获取相对可靠的结果。2、板级硬件消抖板级硬件滤波通常是在电路中与按键并联接入一个滤波电容利用电容的充放电延时进行消抖。需要设计好充放电常数时间常数太大按键不灵敏连续按键可能无法正确识别按键信号时间常数太小达不到消抖的效果。这种方法对于软件实现来说最简单可以认为结果是可靠的但增加了硬件成本在一些低成本产品无法采用。二、软件消抖1、单次延时消抖根据按键的机械特性按键在按下或松开时的抖动时长一般为10ms所以可以以10ms为间隔对按键进行两次判断获取按键实际状态按下或松开。若检测到按键按下则延时一定时间如10ms再次获取按键状态若按键仍为按下则按键按下否则可认为是扰动。boolkeyRead(void){if(KEY1){DelayMs(10);if(KEY1){returntrue;}}returnfalse;}该方法在保护电阻R1阻值较小时效果较好不依赖滤波电容也可以获取准确的按键状态。2、多次延时消抖软件滤波的另一种方法以较小的间隔对按键多次采样若采样结果一致则为正确的按键状态。比如以1ms的间隔对按键连续采样8次。boolkeyRead(void){uint8_t i;uint8_t key0;for(i0;i8;i){key|(KEY0x1)i;}if(key0xff){returntrue;}returnfalse;}在保护电阻R1较大时低功耗产品该方法感觉效果较好些。

相关新闻

基于CH554单片机的USB Host转蓝牙键盘转换器设计与实现

基于CH554单片机的USB Host转蓝牙键盘转换器设计与实现

2026/7/28 20:08:03

1. 项目概述:为什么用CH554做USB Host转蓝牙键盘? 最近在折腾一个挺有意思的小项目:用一块国产的8位单片机CH554,把它变成一个USB Host,然后读取普通USB键盘的按键数据,再通过蓝牙模块发送出去,…

AI时代下Processing在创意编程中的不可替代性

AI时代下Processing在创意编程中的不可替代性

2026/7/28 20:08:03

1. 当AI Coding遇上Processing:创意编程的变与不变最近在创意编程圈里有个热议话题:随着AI代码生成工具的爆发式发展,像Processing这样的传统创意编程工具还有学习的必要吗?作为一个从2012年就开始用Processing做交互装置的老程序…

TPIC7710EVM评估板深度解析:从硬件架构到软件实操的汽车电子设计加速器

TPIC7710EVM评估板深度解析:从硬件架构到软件实操的汽车电子设计加速器

2026/7/28 20:08:03

1. 项目概述与EVM核心价值 在汽车电子和工业控制这类对可靠性要求极高的领域,工程师在将一颗新的专用集成电路(ASIC)设计进系统之前,必须对其功能、性能边界和在实际电路中的表现有绝对的把握。这时,评估模块&#xff…

幻兽帕鲁存档编辑终极指南:如何安全修改游戏数据而不损坏存档

幻兽帕鲁存档编辑终极指南:如何安全修改游戏数据而不损坏存档

2026/7/28 20:58:05

幻兽帕鲁存档编辑终极指南:如何安全修改游戏数据而不损坏存档 【免费下载链接】palworld-save-tools Tools for converting Palworld .sav files to JSON and back 项目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools 你是否曾经因为游戏存档…

学术论文写作工具选择指南与高性价比推荐

学术论文写作工具选择指南与高性价比推荐

2026/7/28 20:58:05

1. 论文写作工具的选择困境作为一名在学术圈摸爬滚打多年的研究者,我深知论文写作过程中工具选择的重要性。记得刚开始读研时,我花了大价钱购买了一套所谓的"专业级"文献管理软件,结果发现功能复杂难用,最后反而拖慢了研…

vJoy虚拟摇杆驱动:Windows游戏开发者的终极输入解决方案

vJoy虚拟摇杆驱动:Windows游戏开发者的终极输入解决方案

2026/7/28 20:58:05

vJoy虚拟摇杆驱动:Windows游戏开发者的终极输入解决方案 【免费下载链接】vJoy Virtual Joystick 项目地址: https://gitcode.com/gh_mirrors/vj/vJoy 你是否曾遇到过这样的困境:想要测试游戏手柄兼容性却没有物理设备?或者需要将键盘…

公链节点维护成本解析与优化策略

公链节点维护成本解析与优化策略

2026/7/28 20:58:05

1. 公链节点维护费的本质解析公链节点的年维护费用绝非简单的服务器租赁成本,而是区块链网络维持去中心化特性的经济门槛。以以太坊为例,一个全节点每年基础硬件成本约$3,000-$5,000,这包含:企业级SSD(至少2TB NVMe&am…

提示词驱动的AI Agent:CLI-Anything技术解析

提示词驱动的AI Agent:CLI-Anything技术解析

2026/7/28 20:58:05

1. CLI-Anything 的本质:提示词驱动的AI Agent 当我第一次看到CLI-Anything这个项目时,最让我震惊的是它完全颠覆了传统命令行工具的开发模式。作为一个长期从事CLI工具开发的工程师,我习惯性地去GitHub仓库里寻找核心引擎代码,结…

深圳花园婚礼场地趋势与黄金评估体系

深圳花园婚礼场地趋势与黄金评估体系

2026/7/28 20:48:04

1. 2026年深圳花园婚礼场地趋势前瞻 作为在深圳婚庆行业深耕十年的策划师,我见证了这座城市户外婚礼场地的迭代升级。2026年的深圳花园婚礼场地将呈现三大特征:生态化设计成为标配(90%新场地配备垂直绿化系统)、智能化设备全覆盖&…

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

2026/7/28 13:30:18

目标:电脑作为RTSP 服务端,循环推送 H264/H265 视频流; RDK X5 通过 rtsp2display 拉流预览,完全不需要在开发板编译 live555。 提供两套成熟方案: ✅ 方案 A:FFmpeg(最简单,优先推…

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

2026/7/28 16:04:36

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

2026/7/28 16:04:35

说实话,提到PDF拆分再压缩,我真是被折腾得够呛。 上个月公司年度合同归档,一份300多页的PDF总合同,需要按年份拆分成三个独立文件,再分别压缩到10MB以内方便邮件发送各部门确认。我心想这还不简单?先找个海…

零基础搭建桌面智能体,OpenClaw 2.7.9 分步实操,避开绝大多数部署陷阱

零基础搭建桌面智能体,OpenClaw 2.7.9 分步实操,避开绝大多数部署陷阱

2026/7/28 0:06:55

📌 一、工具核心优势盘点 数据本地存储,安全系数高所有操作日志、文档资料均保存在本机,不会上传至云端,能够有效保护企业文件与个人隐私,规避数据泄露风险。 上手简单,零编程门槛采用全图形化可视化界面&…

计算机毕业设计之基于springboot的购物平台设计与实现

计算机毕业设计之基于springboot的购物平台设计与实现

2026/7/28 0:06:55

由于移动应用技术的持续性的快速发展,现实生活中人们大多数都是通过移动手机、电脑等智能设备来完成生活中的事务。因此,许多的人工传统行业也开始与互联网结合,不再一味的依靠人工手动,努力打造半自动数字化甚至是全自动数字化模…

豆包AI绘图提示词失效真相:NLP模型层token截断机制首次披露,3招绕过字数限制

豆包AI绘图提示词失效真相:NLP模型层token截断机制首次披露,3招绕过字数限制

2026/7/28 0:06:55

更多请点击: https://codechina.net 第一章:豆包AI绘图提示词失效现象全景扫描 近期大量用户反馈,豆包(Doubao)AI绘图功能对常规提示词(Prompt)响应异常:语义明确的指令被忽略、中英…