嵌入式按键消抖
嵌入式中经常使用按键作为人机交互的接口典型的按键电路如下所示在实际使用过程中由于误触及按键的机械特性按键按下或松开时的输出的波形上会存在抖动一般可以通过增加滤波电容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转蓝牙键盘转换器设计与实现

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

2026/10/13 13:42:36 阅读更多 →
AI时代下Processing在创意编程中的不可替代性

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

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

2026/10/13 5:27:00 阅读更多 →
TPIC7710EVM评估板深度解析:从硬件架构到软件实操的汽车电子设计加速器

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

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

2026/10/2 22:34:46 阅读更多 →

最新新闻

100+套大数据可视化模板怎么选怎么改?大屏项目从周交付缩到天

100+套大数据可视化模板怎么选怎么改?大屏项目从周交付缩到天

如果你负责过任何一个数据看板项目,你大概率经历过这种崩溃:需求方说“就要那个大屏的样子”,但UI还没排期、前端还在赶需求,数据接口倒是提前给好了,就是没人画图表。后来我都习惯先从模板库找一套现成的大数据可视化…

2026/10/13 13:43:25 阅读更多 →
多AGV调度系统设计指南:任务分配、路径规划与死锁避坑

多AGV调度系统设计指南:任务分配、路径规划与死锁避坑

简介:这是一套基于Java开发的多AGV调度系统,面向自动化仓库与智能制造场景,帮助工程师快速掌握多台AGV的路径规划、任务分配与动态调度机制。资源包共1260个文件,压缩后约3.07MB,其中以923个Java源文件为核心&#xff…

2026/10/13 13:43:25 阅读更多 →
Spring Boot 4与Java 25下的Seata分布式事务选型实战

Spring Boot 4与Java 25下的Seata分布式事务选型实战

说实话,看到标题里同时挂着“Spring Boot 4 Java 25”和“Seata”,我第一反应是:这回又要趟一遍分布式事务的浑水了。去年我在某电商系统里,把一套拆成订单、库存、支付三个服务的项目,硬生生塞进了分布式事务的坑里&…

2026/10/13 13:43:25 阅读更多 →
多变量线性回归实战:从原理到工程优化

多变量线性回归实战:从原理到工程优化

多变量线性回归这个模型,我前前后后在好几个项目里用过,从最早的房价预测练手,到后来做设备寿命估算、广告投放效果归因,它几乎是我每次遇到"多个输入影响一个输出"这类问题时的第一选择。很多人学机器学习是从单变量线…

2026/10/13 13:43:25 阅读更多 →
协同过滤电影推荐系统:算法实现、论文写作与答辩全攻略

协同过滤电影推荐系统:算法实现、论文写作与答辩全攻略

简介:一套面向推荐系统课程设计与毕业设计的完整资料包,聚焦协同过滤算法在电影推荐场景中的落地应用,可帮助开发者快速理解并复现基于用户历史评分、用户相似度与电影相似度的推荐流程。资源共847个文件,压缩包大小22.56MB&#…

2026/10/13 13:43:25 阅读更多 →
AI开源漏洞扫描器实战:语义级检测与传统SCA的互补与落地

AI开源漏洞扫描器实战:语义级检测与传统SCA的互补与落地

1. 开源漏洞扫描这件事,为什么突然又被推上台面 开源项目漏洞检测不算新话题,但最近某头部模型厂商推出免费的开源软件AI扫描器,把这件事重新拉回了开发者视野。我第一时间去翻了它的定位和适用场景,发现它并不是要替代传统的SCA&…

2026/10/13 13:42:25 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →