外部中断误触发的原因分析和解决方法

今天在写外部中断的程序的时候,发现中断特别容易受到干扰,我把手放在对应的中断引脚上,中断就一直触发,没有停过。经过一天的学习,找到了几个解决方法,所以写了这篇笔记。如果你的中断也时不时会误触发,可以对照找一下原因。
1,上下拉
中断的外围电路,该上拉的就上拉,该下拉就下拉,如下图:
图中的bat6_#chrg和bat6_#done是连接到mcu的2个中断引脚,其中r183已经是上拉3.3v了,d63和d64用于指示,并没有任何作用。除了上图的上拉,还需要一个对地的电容下拉,接到gnd,这样就可以让信号没有毛刺。
2,中断延迟检测
在触发中断之后,延迟一段时间,然后去处理。个人认为不好,中断的好处就是实时性和优先级,现在在中断里面加delay函数,不是和中断的初衷相悖吗?
3,清除中断标志位或者开关中断源
网上有部分人也说,清除中断或者开关中断源,这样就可以释放中断,把中断“赶”出去,等下次中断,再让它“进”来,但是stm32的cortex-m内核有一个问题,中断标志位清除之后,并不是马上清除,而是要等一会,这就导致清除标志位的方法不太可行,只能去开关中断源了。
4,施密特滞留器
这是网上上比较靠谱的一种方法,将施密特接到中断之后,mcu之前,保证进入中断的信号都是经过“滞留”的。施密特触发器分为两种类型,即反相施密特触发器和同相施密特触发器。反相施密特触发器可以定义为一个输出元件连接到运算放大器的正端。类似地,同相施密特触发器可以定义为输入信号在运算放大器的负端给出。
下图是反向施密特触发器的输入和输出的电压波形关系,其中输入也不一定是正弦函数,有可能是三角波甚至是方波,反正输出的电压是通过阈值来判断的。
使用ne555的施密特触发器电路图如下所示,下面的电路可以用基本的电子元件组成,但ne555是这个电路中必不可少的元件。ne555的两个引脚(例如引脚4和引脚8)都与vcc电源相连。两脚(如引脚2和引脚6)短接,通过电容将输入相提供给这些脚。
在上图中,电阻r1和r2形成的分压器提供外部偏置电压(vcc/2) ,阈值为1/3vcc和2/3vcc。

介绍两种绘制出平面上的云图信息的方法
新时代技术如何使零售业变得更好
优点科技智能锁 C2简介
触控360全景行车辅助功能演示
林肯·汤利在微信上通过加密货币的形式出售了一整套作品
外部中断误触发的原因分析和解决方法
ST双通道DTV单芯片集成MPEG2高清,支持模拟电视
测评表现AI硬盘:安防发展之必然
库房动力环境综合监控系统
LIN总线的应用 LIN网络的应用
华为发布最新的运营商IT产品及解决方案
信息安全市场的经济因素及其与漏洞披露的关系
韩国用户称 iPhone 12 mini 锁屏灵敏度出现问题
苏宁上线自家空调品牌 能走多远大家拭目以待
中国联通在5G来临之前为什么要反其道而行之
CompactRIO控制器,专用于控制和监测应用的坚固嵌入式系统
艾迈斯欧司朗推出VCSEL 3D手势识别新品,使AR/VR交互体验更上一层楼
当国际照明品牌增加传统UVC灯管产品线时, UVC LED该何去何从?
输油输气管道的在线监测系统的解决方案和功能特点分析
EPC增强型GaN-on-Silicon功率晶体管:EPC2045