找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1999|回复: 9
打印 上一主题 下一主题
收起左侧

关于STM32F103按键问题,偶尔有一次误跳

[复制链接]
跳转到指定楼层
楼主
ID:497468 发表于 2020-12-24 21:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用103做了个时钟,   在 A口做了4个按键,用的是上拉输入方法,但是在实际使用过程中发现,按键有误按的问题,会自已跳,但确实没有按键.
后来我在A口上面物理的连接了4个5.1 K的上拉电阻,效果就好多了,但是在使用几个小时后或者偶尔有一次误跳,请问各位大侠,这个是什么原因造成的,如何彻底解决这个问题?  

可以确认按键没有问题.已经更换过一批了,还是一样.  是程序的问题吗?还是输入口设置不对呀
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:684084 发表于 2020-12-24 22:08 | 只看该作者
按键那里并个104电容吧,软件采集多判断几次结果一致才算有效,硬件软件防抖
回复

使用道具 举报

板凳
ID:95703 发表于 2020-12-25 09:15 | 只看该作者
有做软件防抖了吗?或者加103电容防抖。
回复

使用道具 举报

地板
ID:373388 发表于 2020-12-25 10:53 | 只看该作者
应该是程序的问题,如果按键按下1此,会多次触发按键,就是软件防抖处理没做好,或者硬件加电容处理,如果没有按键会触发按键功能,尾部干扰的可能性不大,应该是软件没处理好,端口配置等等。
回复

使用道具 举报

5#
ID:511543 发表于 2020-12-25 11:37 | 只看该作者
这个问题不是很棘手,如果你按键是设计为低电平有效,那么设计硬件上拉,如果是低电平有效,设计硬件下拉,驱动方面,如果是按键轮询,加点延时消抖,如果是中断,也应加点延时消抖,双重保证。我用这么多年年,妥妥的。
回复

使用道具 举报

6#
ID:497468 发表于 2020-12-25 20:33 | 只看该作者
                        if(!KEY_UP&&!key_flag1)         //         UP°′¼ü3ìDò
                        {
                        delay_ms(10)        ;
                       
                        if(!KEY_UP)
                        {
                        key_flag1=1;
                         menu=12;            //ÕaàïD′òaÖ′DDμÄ3ìDò
                        } }
                        else if(KEY_UP)
                        {
                        key_flag1=0;
                        }
回复

使用道具 举报

7#
ID:497468 发表于 2020-12-25 20:44 | 只看该作者
我觉得和消抖没有什么关系,   因为我做了防抖,而且做了按下不会有多次的触发现象.松手前只会算一次.
现在是不去按键时,会自己跳动, 我怀疑是干扰的问题,因为我加了上拉电阻后,有明显的改善,但是几个小时后会偶尔会有一次有一个键触发了,
按键检测一直放在大循环中检测,是不是速度太快了,导致没有读到A口引脚的电压,导致误判断为低电平?
选择IO接口工作方式:
GPIO_Mode_AIN 模拟输入
GPIO_Mode_IN_FLOATING 浮空输入
GPIO_Mode_IPD 下拉输入
GPIO_Mode_IPU 上拉输入
GPIO_Mode_Out_PP 推挽输出
GPIO_Mode_Out_OD 开漏输出
GPIO_Mode_AF_PP 复用推挽输出
GPIO_Mode_AF_OD 复用开漏输出
我用的是上拉输入,这个设置是对的吗?
回复

使用道具 举报

8#
ID:14242 发表于 2020-12-25 21:56 | 只看该作者
硬件的滤波做好,上拉和RC滤波也做好,还有程序上要做去抖动识别,否则肯定会出现这种情况。
回复

使用道具 举报

9#
ID:497468 发表于 2020-12-26 10:04 | 只看该作者
我又试过用配置成GPIO_Mode_IN_FLOATING 浮空输入,然后在上拉电阻,刚开始还是比较稳 的,昨晚没有出现,但今天早上开机1小时后,又有一个按键误动了.
1,我在按键与地之间串接了个10K的电阻,这个有影响吗?
2,这个芯片我是在TB上买的6元一片的,是不是假的,造成这个问题的? 按理说就算是国产的也不会有这个问题呀,
3,芯片内部采用了上拉方式输入,为何还要在外部做上拉的这个呢,这不是重复了吗?
回复

使用道具 举报

10#
ID:497468 发表于 2020-12-26 19:14 | 只看该作者
感谢各位,现在按上面几位的建议,在输入端并了一个104电容,配置改为上拉, 已经老化一下午了,暂时没有出现乱跳的现象了,
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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