OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6048|回复: 13

我的新电路板,有一个按键,只要有小小的一个干扰或手指轻轻一碰

[复制链接]

14

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-9-3
在线时间
4 小时
发表于 2014-9-23 20:09:45 | 显示全部楼层 |阅读模式
按键就会触发处理程序,也有干扰延时50ms,可是没用!按键是GND触发的,接地就触发按键程序!该怎么办呢,外面的干扰是不可避免的!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

81

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2011-9-4
在线时间
0 小时
发表于 2014-9-23 20:17:38 | 显示全部楼层
接个2K的上拉电阻试一下
回复 支持 反对

使用道具 举报

14

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-9-3
在线时间
4 小时
 楼主| 发表于 2014-9-23 20:25:04 | 显示全部楼层
好的,哥!我先试试!
回复 支持 反对

使用道具 举报

14

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-9-3
在线时间
4 小时
 楼主| 发表于 2014-9-23 21:01:36 | 显示全部楼层
PC5  不是  fT引脚啊怎么办?    stm32f103ZET6
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-9-23 23:52:42 | 显示全部楼层
回复【4楼】101:
---------------------------------
和FT没什么关系啊。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

14

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-9-3
在线时间
4 小时
 楼主| 发表于 2014-9-24 11:09:54 | 显示全部楼层
我接的是3.3V 到1K  ,用镊子轻轻触碰几下,有时候还是出现执行按键程序,只不过出现次数不多,但说明还是有啊 ,怎么办呢?还有原子老师说和FT没什么关系,接5V上拉是不是就不行了?
回复 支持 反对

使用道具 举报

14

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-9-3
在线时间
4 小时
 楼主| 发表于 2014-9-24 11:19:26 | 显示全部楼层
大开发板,我用镊子捅几下按键引脚,也是可以执行按键程序?这样避免这种干扰呢?
回复 支持 反对

使用道具 举报

233

主题

961

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1815
金钱
1815
注册时间
2011-10-9
在线时间
230 小时
发表于 2014-9-24 11:30:27 | 显示全部楼层
1. 按键 并上电容
2. 软件加上延时
   if 按下了 
     『
         延时50
         if 还是按下了
            『
               延时50
                 if 还是按下了
                     『
                          处理

                      』


            』

     
     』
回复 支持 反对

使用道具 举报

39

主题

156

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
417
金钱
417
注册时间
2012-12-23
在线时间
19 小时
发表于 2014-9-25 11:40:24 | 显示全部楼层
其实按键要真正做到消抖的话,是要检测按键被压下超过多少时间才算按键成立,这样才能避开干扰
如果按照
if(按键压下)
{
       延时
       if(按键压下)
       {
              处理功能
       }
}
这样就会出现一个问题,如果第一次按键进来是一个干扰信号,经过延时之后如果又来了一个干扰信号的话  这样的按键实际上是不成立的
天道酬勤
回复 支持 反对

使用道具 举报

65

主题

440

帖子

0

精华

高级会员

Rank: 4

积分
782
金钱
782
注册时间
2012-8-29
在线时间
17 小时
发表于 2014-9-26 10:07:10 | 显示全部楼层
按键按下后,连续检测几十次是否一直被按下,时间越短越好
人生永远追逐着幻光,但谁把幻光看作幻光,谁便沉入无边的苦海
回复 支持 反对

使用道具 举报

14

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-9-3
在线时间
4 小时
 楼主| 发表于 2014-9-26 14:33:52 | 显示全部楼层
楼上的都有道理,如果是有规律的干扰,恰恰遇到峰值,那就麻烦了,不过现在好多了!感谢8楼的提示!
回复 支持 反对

使用道具 举报

14

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2014-9-3
在线时间
4 小时
 楼主| 发表于 2014-9-26 14:34:13 | 显示全部楼层
回复【9楼】xly0907:
---------------------------------
多谢!
回复 支持 反对

使用道具 举报

1

主题

93

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2014-3-12
在线时间
9 小时
发表于 2014-9-26 15:47:06 | 显示全部楼层
用(10~20ms)定时扫描法,原理如下图:




功夫再高、也怕羊刀
回复 支持 反对

使用道具 举报

1

主题

93

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2014-3-12
在线时间
9 小时
发表于 2014-9-26 15:50:36 | 显示全部楼层
回复【13楼】加速度:
---------------------------------
用3位的缓冲可以判别按键的状态:
000  稳定的按下状态
001  未消抖的释放动作
010  按下状态的抖动(忽略)
011  释放动作
100  按下动作
101  释放状态的抖动(忽略)
110  未消抖的按下动作
111  稳定的释放状态
当然也可以用4个Bit作为IO扫描的缓冲,那样消抖更好,不过处理的延迟会大点。
功夫再高、也怕羊刀
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-1 00:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表