你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

按键释放需要消抖吗  

[复制链接]
ljz1992 提问时间:2018-6-8 14:44 /
阅读主题, 点击返回1楼
收藏 评论38 发布时间:2018-6-8 14:44
38个回答
李西西 回答时间:2018-6-8 15:30:02
加上软件延时就可以了

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

wenyangzeng 回答时间:2018-6-8 16:02:34
如果需要利用按键释放事件执行某个操作,应该需要释放消抖。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

zhao.zhao 回答时间:2018-6-8 16:13:03
我一般用定时检测,没有消抖的问题了。按键在释放时也会经历一个和按下时相同的消抖过程,既然按下时已经消抖了,释放时同样的过程再重复一次,不过这一次按键没有被判为按下。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

xiajintaord 回答时间:2018-6-8 17:01:12
按键的消抖分为两种:
1、硬件消抖;
2、软件消抖

你这种情况使用的软件消抖,所以才需要考虑释放要不要消除抖动;
如果按键不多,可以使用硬件消抖的方案,就不需要考虑这么复杂的逻辑了。

硬件消抖有很多的方法,并联电容、RS触发器等等;可以去了解一下。

评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

ljz1992 回答时间:2018-6-8 18:35:36
xiajintaord 发表于 2018-6-8 17:01
按键的消抖分为两种:
1、硬件消抖;
2、软件消抖

谢谢。不过我需要控制成本,目前不考虑硬件消抖。关于硬件消抖的方法之前也有了解过。
ljz1992 回答时间:2018-6-8 18:40:55
zhao.zhao 发表于 2018-6-8 16:13
我一般用定时检测,没有消抖的问题了。按键在释放时也会经历一个和按下时相同的消抖过程,既然按下时已经消 ...

定时检测应该也算是在消抖吧。按键每次按下的时间一般都要大于100ms的,我现在是每10ms判断一次,既能保证按键操作不会丢失,又能节省mcu的消耗。
ljz1992 回答时间:2018-6-8 18:47:50
本帖最后由 ljz1992 于 2018-6-8 18:48 编辑
与龙共舞 发表于 2018-6-8 15:14
其实我看原子的 在按下 释放 都没消抖
他的做法: 不单单是按键GPIO的中断线 他还用一个定时器去实时检测  ...

如果没有硬件消抖,软件消抖应该是不能少的吧,你所说的原子的我不太清楚(下去我去了解一下),但是我认为他肯定也会在隔几毫秒后再检测一次按键的。如果同时使用了中断线和定时器实时检测感觉太消耗片上资源了,也只适合开发板上单例程学习,不适合拿到工程上使用吧。不过双击这个功能我倒是没有考虑到,也可以给我的程序补充上去
ljz1992 回答时间:2018-6-8 18:52:41
wenyangzeng 发表于 2018-6-8 16:02
如果需要利用按键释放事件执行某个操作,应该需要释放消抖。

我利用了状态机处理,如果不需要释放消抖的话,即使按键释放要执行某个动作,应该也不会有问题的。
wenyangzeng 回答时间:2018-6-8 20:43:12
ljz1992 发表于 2018-6-8 18:52
我利用了状态机处理,如果不需要释放消抖的话,即使按键释放要执行某个动作,应该也不会有问题的。 ...

不一定,假设现在是按键闭合期间,这时出现抖动,会误判为按键释放。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

toofree 回答时间:2018-6-9 00:24:16
ljz1992 发表于 2018-6-8 18:52
我利用了状态机处理,如果不需要释放消抖的话,即使按键释放要执行某个动作,应该也不会有问题的。 ...

释放需不需要消抖,得看机制。

如果程序按下消抖,是用的延时死等,取键值后紧跟着执行键码对应的操作。这种情况抬起不需要消抖。

像电脑标准行列矩阵键盘是需要消抖的,因为按下和抬起都要发键值。
因为它是循环检测,检测一次把所有键位都检测一遍,不管有多少键按下,都会记住相应状态。
根据两次状态的不同,来判断是哪个键,是抬起还是按下操作。第一、二次循环,发现有键状态变化,那么第三次检测到与第二次相同,方才认为是有效按下或抬起来动作。

评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版