打印
[STM32F1]

还是按键exti

[复制链接]
1158|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Gerrard_8|  楼主 | 2015-8-22 09:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用exit的方式连接了5个按键,每个按键边上有个104电容。 gpio配置为IPU,然后按下exit4的时候回触发exit5  其他的按键也有这个现象(概率不太好说,差不多没5-10下回触发一下)。
不加电容exti中断会进入的次数多一些,我一般加个延时消抖效果也挺好的。但是我不明白为什么会乱触发。
附上中断里面的代码
void EXTI9_5_IRQHandler(void)
{//printf("k2222y1\n");
    if(EXTI_GetITStatus(EXTI_Line5)!=RESET){
        printf("key1\n");
        EXTI_ClearITPendingBit(EXTI_Line5);
    }else if(EXTI_GetITStatus(EXTI_Line6)!=RESET){
        printf("key2\n");
        EXTI_ClearITPendingBit(EXTI_Line6);
    }else if(EXTI_GetITStatus(EXTI_Line7)!=RESET){
        printf("key3\n");
        EXTI_ClearITPendingBit(EXTI_Line7);
    }else if(EXTI_GetITStatus(EXTI_Line8)!=RESET){
        printf("key4\n");
        EXTI_ClearITPendingBit(EXTI_Line8);
    }else if(EXTI_GetITStatus(EXTI_Line9)!=RESET){
        printf("key5\n");
        EXTI_ClearITPendingBit(EXTI_Line9);
    }
}

要不说什么延时消抖很垃圾,我觉得满足需求就好了,软件延时软件写起来方便多了。另外本人亲手验证加个104的电容有利于按键消抖。
沙发
皈依| | 2015-8-22 11:31 | 只看该作者
延时消抖很垃圾为什么很多人都还在用呢。。。
104电容好用为什么会触发误操作呢。。。
不能太绝对。
楼主去掉104 用延时测试一下有没有误触发,另外程序分开写吧 不要用else if

使用特权

评论回复
板凳
Gerrard_8|  楼主 | 2015-8-22 13:14 | 只看该作者
皈依 发表于 2015-8-22 11:31
延时消抖很垃圾为什么很多人都还在用呢。。。
104电容好用为什么会触发误操作呢。。。
不能太绝对。

去掉电容也是有的,另外我没说按键延时垃圾,上面表达错意思了

使用特权

评论回复
地板
皈依| | 2015-8-22 14:10 | 只看该作者
程序修改了还有的话要看看硬性做的有什么地方干扰的

使用特权

评论回复
5
mmuuss586| | 2015-8-22 19:09 | 只看该作者

硬件设计不好,只能软件处理了;
外部再加上拉电阻,抗干扰效果好会好些;
内部只能算弱上拉;

按键到单片机的线有多长啊?
另外电容加在哪个位置也有说法的;

我的按键处理,除了阻容滤波,还加了施密特触发器;
软件还做了滤波;

即使线长2米,10几个输入都不会互相干扰;

使用特权

评论回复
6
科技猎人| | 2015-8-22 20:46 | 只看该作者
按键不要用中断触发,也不用外加其他电路。定时扫描,连续计数,绝对不会有误触发的

使用特权

评论回复
7
songchenping| | 2015-8-22 21:07 | 只看该作者
软硬件结合。或许结果会更好

使用特权

评论回复
8
米尔豪斯| | 2015-8-23 15:39 | 只看该作者
建议外部加上拉电阻,抗干扰效果好会好些

使用特权

评论回复
9
Thor9| | 2015-8-23 16:40 | 只看该作者
定时扫描,连续计数,绝对不会有误触发的

怎么讲,可不可以相信说下

使用特权

评论回复
10
FireRiver9| | 2015-8-25 17:26 | 只看该作者
这种情况,建议检查一下硬件电路

使用特权

评论回复
11
lefeng| | 2015-8-28 20:33 | 只看该作者
楼主去掉104 用延时测试一下有没有误触发

使用特权

评论回复
12
598330983| | 2015-8-28 20:49 | 只看该作者
电容应该是防止抖动。

使用特权

评论回复
13
734774645| | 2015-8-28 21:03 | 只看该作者
小电容有助于消除抖动。

使用特权

评论回复
14
天灵灵地灵灵| | 2015-8-28 21:09 | 只看该作者
电容可以起到硬件消除抖动的目的,小的抖动都被电容吸收了。

使用特权

评论回复
15
冰河w| | 2015-8-28 21:31 | 只看该作者
不行就检查下硬性,看做的有什么地方干扰的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

17

帖子

0

粉丝