打印
[STM32F1]

给大家分享一个按键消抖程序,很好用

[复制链接]
楼主: 铜牌之路
手机看帖
扫描二维码
随时随地手机跟帖
21
铜牌之路|  楼主 | 2015-6-22 16:04 | 只看该作者 回帖奖励 |倒序浏览

好的,我先看看

使用特权

评论回复
22
铜牌之路|  楼主 | 2015-6-22 16:05 | 只看该作者
nuaabob 发表于 2015-6-21 20:11
一看软件延时就只能呵呵了。

软件延时不好?用硬件?

使用特权

评论回复
23
铜牌之路|  楼主 | 2015-6-22 16:05 | 只看该作者

简单粗暴:lol

使用特权

评论回复
24
insignal| | 2015-6-22 17:01 | 只看该作者
本帖最后由 insignal 于 2015-6-22 17:09 编辑

这个代码判断下降沿有问题
能判断到要靠运气

不过延时去抖动 看来大家都看不起
好像太简单很丢面子
不过加个定时器也有点太容易了,一定
要外接滤波 再用比较器整整形
固件再用定时器 再加多点采样 再用卡尔曼滤波  最后得到  卧槽 这真的是一次按键

使用特权

评论回复
25
longquanshuang| | 2015-6-22 20:49 | 只看该作者
都是后台中断扫描的

一个delay说明刚入门

使用特权

评论回复
26
ticomi| | 2015-6-23 07:59 | 只看该作者
铜牌之路 发表于 2015-6-22 16:03
给个更好的方法,我学习学习

网上有很多例程,你可以参考。我的设计是采用硬件和软件结合的方式,不需要延时,通过算法来确保按键正确并响应其操作。

使用特权

评论回复
27
powerxia| | 2015-6-23 08:43 | 只看该作者
实际做项目时这种是没办法用的,LZ可以去找一下马潮的书看下状态机

使用特权

评论回复
28
clnbcl| | 2015-6-23 08:51 | 只看该作者
这程序压根就是初学者才会这样写程序的。

按键防抖:谁会写延时10ms呢?  一般要定时扫描2次确认就好。

使用特权

评论回复
29
铜牌之路|  楼主 | 2015-6-23 15:39 | 只看该作者
powerxia 发表于 2015-6-23 08:43
实际做项目时这种是没办法用的,LZ可以去找一下马潮的书看下状态机

好的 谢谢

使用特权

评论回复
30
734774645| | 2015-6-23 15:42 | 只看该作者
这有意思??应该用中断,然后加松手检测。

使用特权

评论回复
31
734774645| | 2015-6-23 15:42 | 只看该作者
楼主这个就是个常规用法而已,看楼主激动的

使用特权

评论回复
32
yiyigirl2014| | 2015-6-23 20:23 | 只看该作者
            if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_14)==1)
                               {   
                               delay_ms(100);
                 if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_14)==0) // 相当于下降沿
非常好。

使用特权

评论回复
33
734774645| | 2015-6-23 21:04 | 只看该作者
果然好用的受不了,先屯起来。

使用特权

评论回复
34
hudi008| | 2015-6-23 22:07 | 只看该作者
谢谢分享。

使用特权

评论回复
35
598330983| | 2015-6-25 22:03 | 只看该作者
好用的是自己研究出来的

使用特权

评论回复
36
Progrime| | 2015-6-27 08:53 | 只看该作者
//我的做法,发来大家呵呵一下
//定时中断,中断服务程序:
static u32 key_A14 = 0; //static u16 key_A14 = 0;
key_A14 <<= 1; //如果有抖动,必定不全为0或1
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_14)==1) {
  key_A14 |= 1;
}

//应用程序:全为1表示没有抖动了
if(key_A14==0xFFFFFFFF){//if(key_A14==0xFFFF){
  ...
}

使用特权

评论回复
37
玛尼玛尼哄| | 2015-6-27 09:48 | 只看该作者

哈哈,刚学。但是觉得这个很简单

使用特权

评论回复
38
aichixiaobaicai| | 2015-6-27 10:10 | 只看该作者
铜牌之路 发表于 2015-6-22 16:04
就为了判断下降沿那一个地方

会不会,有时候判断不出来呢????

使用特权

评论回复
39
天灵灵地灵灵| | 2015-6-27 10:18 | 只看该作者

用延时,实不可取了!!

使用特权

评论回复
40
wlzeagle| | 2015-6-27 11:43 | 只看该作者
这样的代码实验用的吧?

使用特权

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

本版积分规则