打印
[STM32F0]

除了延时防抖动之外,有其它方法吗?

[复制链接]
1956|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
morrisk|  楼主 | 2018-5-28 15:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
将IO口设定为外部上升沿触发。如果外部信号本身存在毛刺,则怎样防止stm32内部多次进入中断函数?
沙发
pengf| | 2018-5-28 15:24 | 只看该作者

阻容滤波

使用特权

评论回复
板凳
supernan| | 2018-5-28 15:25 | 只看该作者
软件解决不好,关键是硬件处理!

使用特权

评论回复
地板
houcs| | 2018-5-28 15:26 | 只看该作者
关于外部中断的一些问题,上拉电阻,抗干扰等 曾经做过一个用光电对管测试码盘的转速的项目,里面用到外部中断。光电对管产生脉冲 基本操作是,一个全局变量,外部中断的时候加一,定时器定时一秒取这个数。 结果我发现,用手碰一下中断脚就会中断上百次。 后来我在中断脚前面加了一个反相器74ls14,同时加上一个电容,才解决问题,这里74ls14起到个延时作用,如果达不到足够74ls14输出的时间就是干扰。 尝试了多次,电容小了,抗干扰能力不行,电容大了,信号不准确。 使用外部中断的时候注意,对应引脚一定要设置为输入 DDR 设置为0,如果要使能内部上拉电阻,PORT设为1。 一点经验,欢迎讨论。

使用特权

评论回复
5
liuzaiy| | 2018-5-28 15:27 | 只看该作者
摘抄的,我现在也遇到同样的问题,郁闷,正在想办法解决,你有进展了吗

使用特权

评论回复
6
pangb| | 2018-5-28 15:28 | 只看该作者
好像NXP的有软件滤波功能,ST的没有

使用特权

评论回复
7
chenjunt| | 2018-5-28 15:29 | 只看该作者

ST的TIMER模块,在输入捕获通道,来自外部引脚的信号都有软件滤波功能。

使用特权

评论回复
8
zyf部长| | 2018-5-28 15:30 | 只看该作者
如果是对外部信号的上升沿进行捕捉,产生中断,而外部信号有毛刺的情况下,可以使用上述的功能。

使用特权

评论回复
9
xxmmi| | 2018-5-28 15:30 | 只看该作者

我曾经也是这样做的,并且也挺好的,只是偶尔也产生点误判,于是我用了两个,便很好了

使用特权

评论回复
10
zwll| | 2018-5-28 15:32 | 只看该作者
我就是用的这个方法,光电开关出来先经过74hc14,在经过电容滤波,效果还行,不过还是偶尔有误判,正在改变电容解决问题

使用特权

评论回复
11
chuxh| | 2018-5-28 15:33 | 只看该作者
曾经用导线将外部中断引脚对地短路,只要导线长度大于15CM,用电烙铁在附近插板上反复插拔,都会引起中断,最后用光耦隔离且光耦必须尽可能靠近中断引脚干扰才基本消除

使用特权

评论回复
12
stly| | 2018-5-28 15:33 | 只看该作者
以前试过用导线直接将中断引脚对地短路,用电烙铁在附近插板上反复插拔干扰还是存在,最后用光耦隔离干扰才被消除,光耦要尽可能靠近中断引脚。

使用特权

评论回复
13
morrisk|  楼主 | 2018-5-28 15:34 | 只看该作者
哦,那我就知道怎么回事了,多谢大家,结贴了哈

使用特权

评论回复
14
余三水| | 2018-5-29 11:45 | 只看该作者
最好是硬件处理,硬件带有斯密特触发仿抖动最好了,要么就是用定时器中断,加上去除抖动时间

使用特权

评论回复
15
kingkits| | 2018-5-29 15:57 | 只看该作者
抖动本身就应该由硬件(包括机械及电子 器件去解决),反馈到软件这里,面对实际发生的各种信号,能过滤掉抖动就不错了。
不要寄全部希望于软件。这种想法本身就是错误

使用特权

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

本版积分规则

701

主题

6879

帖子

2

粉丝