打印
[STM32F1]

摁一次键外部中断服务程序执行多次

[复制链接]
834|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
juventus9554|  楼主 | 2022-9-2 21:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
原因是由于中断服务程序执行完后,按键还没有拉开,导致再一次进入中断

使用特权

评论回复
沙发
stly| | 2022-9-2 21:28 | 只看该作者
不要用外部中断做按键输入,加延时不就好了。

使用特权

评论回复
板凳
renyaq| | 2022-9-2 21:30 | 只看该作者
按下时,程序进入中断处理后关掉中断,然后在主函数里面加一句判断:松手时再开外部中断..

使用特权

评论回复
地板
dengdc| | 2022-9-2 21:32 | 只看该作者
外部中断弄成下降沿有效不就行了?

使用特权

评论回复
5
jiajs| | 2022-9-2 21:35 | 只看该作者
最好不要这样做吧,这样做按键消抖是个麻烦事情

使用特权

评论回复
6
stly| | 2022-9-2 21:39 | 只看该作者
应该不行,下降沿还是会被执行多次。

使用特权

评论回复
7
supernan| | 2022-9-2 21:40 | 只看该作者
还是在中断里加个延时函数好点

使用特权

评论回复
8
gongche| | 2022-9-2 21:44 | 只看该作者
在中断里延时最傻的做法,不仅解决不了你的问题,还把中断的优点了用成了缺点。

使用特权

评论回复
9
moticsoft| | 2022-9-2 21:45 | 只看该作者
试试 MultiButton,很好用哦

使用特权

评论回复
10
dingy| | 2022-9-2 21:46 | 只看该作者
但是如果我一直按着这个键不放那你不就一直是死在那里了。

使用特权

评论回复
11
wyjie| | 2022-9-2 21:48 | 只看该作者
外部中断比较快啊。而且这个看MCU的资源的,难道非要用定时器吗?

使用特权

评论回复
12
dengdc| | 2022-9-2 21:50 | 只看该作者
状态机啊,用定时器,不浪费CUP时间。

使用特权

评论回复
13
spark周| | 2022-9-2 21:52 | 只看该作者
有2个方法,按键可以通过中断来做,也可以用中断查询方式

使用特权

评论回复
14
wyjie| | 2022-9-2 21:54 | 只看该作者
中断的方式需要使用去抖来做,也可以在中断里通过I/O口的状态来判断。

使用特权

评论回复
15
renyaq| | 2022-9-2 21:55 | 只看该作者
进入中断后先关闭总中断然后判断完了,再开启退出。。

使用特权

评论回复
16
pengf| | 2022-9-2 21:58 | 只看该作者
对于低功耗场合,按键是用来唤醒的,所以必须使用中断

使用特权

评论回复
17
llljh| | 2022-9-2 22:01 | 只看该作者
进中断后关中断,同时开定时器扫描消抖,获得有效按键,等待按键弹起后再开按键对应中断

使用特权

评论回复
18
juventus9554|  楼主 | 2022-9-2 22:03 | 只看该作者

其实还是不大明白,我再琢磨琢磨吧,多谢了哈先

使用特权

评论回复
19
SantaBunny| | 2023-2-22 22:26 | 只看该作者
采用标志位,在中断中对标志位进行操作,然后再其他地方对标志位进行判断,决定是否要进入stop模式。而且,并不推荐在中断中进入stop模式,因为从stop模式出来后还要执行下面的程序。

使用特权

评论回复
20
sfd123| | 2023-2-23 11:08 | 只看该作者
去抖处理!

使用特权

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

本版积分规则

900

主题

12190

帖子

3

粉丝