0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

外部中断为什么会误触发?

撞上电子 2023-11-23 08:00 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

今天在写外部中断的程序的时候,发现中断特别容易受到干扰,我把手放在对应的中断引脚上,中断就一直触发,没有停过。经过一天的学习,找到了几个解决方法,所以写了这篇笔记。如果你的中断也时不时会误触发,可以对照找一下原因。

1,上下拉

中断的外围电路,该上拉的就上拉,该下拉就下拉,如下图:

60067dfa-8993-11ee-9788-92fbcf53809c.png

图中的BAT6_#CHRG和BAT6_#DONE是连接到MCU的2个中断引脚,其中R183已经是上拉3.3V了,D63和D64用于指示,并没有任何作用。除了上图的上拉,还需要一个对地的电容下拉,接到GND,这样就可以让信号没有毛刺。

2,中断延迟检测

在触发中断之后,延迟一段时间,然后去处理。个人认为不好,中断的好处就是实时性和优先级,现在在中断里面加Delay函数,不是和中断的初衷相悖吗?

6014b9ce-8993-11ee-9788-92fbcf53809c.png    

3,清除中断标志位或者开关中断源

网上有部分人也说,清除中断或者开关中断源,这样就可以释放中断,把中断“赶”出去,等下次中断,再让它“进”来,但是STM32的Cortex-M内核有一个问题,中断标志位清除之后,并不是马上清除,而是要等一会,这就导致清除标志位的方法不太可行,只能去开关中断源了。

6021391a-8993-11ee-9788-92fbcf53809c.png

4,施密特滞留器

这是网上上比较靠谱的一种方法,将施密特接到中断之后,MCU之前,保证进入中断的信号都是经过“滞留”的。施密特触发器分为两种类型,即反相施密特触发器和同相施密特触发器。反相施密特触发器可以定义为一个输出元件连接到运算放大器的正端。类似地,同相施密特触发器可以定义为输入信号在运算放大器的负端给出。

下图是反向施密特触发器的输入和输出的电压波形关系,其中输入也不一定是正弦函数,有可能是三角波甚至是方波,反正输出的电压是通过阈值来判断的。

6030f602-8993-11ee-9788-92fbcf53809c.png

使用NE555的施密特触发器电路图如下所示,下面的电路可以用基本的电子元件组成,但NE555是这个电路中必不可少的元件。NE555的两个引脚(例如引脚4和引脚8)都与VCC电源相连。两脚(如引脚2和引脚6)短接,通过电容将输入相提供给这些脚。

603a1a0c-8993-11ee-9788-92fbcf53809c.png

在上图中,电阻R1和R2形成的分压器提供外部偏置电压(VCC/2) ,阈值为1/3VCC和2/3VCC。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电子元件
    +关注

    关注

    95

    文章

    1589

    浏览量

    60519
  • 中断
    +关注

    关注

    5

    文章

    920

    浏览量

    43886
  • 外部中断
    +关注

    关注

    1

    文章

    135

    浏览量

    16700
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MIMXRT1170中断问题,如何将gpio8_29定义为外部中断

    将GPIO8_io29而非GPIO13_io0作为触发点。然而,我并未发现针对GPIO8的任何中断处理程序。 如何将gpio8_29定义为外部中断
    发表于 04-28 06:09

    瑞萨RA系列FSP库开发实战指南之DTC外部中断触发传输实验

    本实验的目标是使用外部中断触发DTC传输,因此需要用到一个按键。
    的头像 发表于 12-26 09:32 4259次阅读
    瑞萨RA系列FSP库开发实战指南之DTC<b class='flag-5'>外部</b><b class='flag-5'>中断</b><b class='flag-5'>触发</b>传输实验

    如何设置横河示波器减少“误触发”的发生?

    深圳市科瑞杰科技有限公司-可以通过一系列的设置去避免或者减少示波器“误触发”的发生,开启触发源模拟滤波、提高实时采样率、设置更精确的触发条件、利用运算通道、使用高配机型DLM3000或DLM5000,可以有效减少
    的头像 发表于 12-23 20:30 314次阅读
    如何设置横河示波器减少“<b class='flag-5'>误触发</b>”的发生?

    导致横河数字示波器DLM3000“误触发”的两种可能情况

    深圳市科瑞杰科技有限公司-示波器可以设置一系列的触发条件如:边沿、触发电平、斜率、触发位置等限制捕捉范围。虽然在触发设置中限制了捕获条件,但在实际测试过程中,偶尔也会发生捕获的波形并没
    的头像 发表于 12-23 20:15 296次阅读
    导致横河数字示波器DLM3000“<b class='flag-5'>误触发</b>”的两种可能情况

    在噪声环境中,外部中断误触发导致频繁唤醒,怎么解决?

    在噪声环境中,外部中断误触发导致频繁唤醒,增加很多不必要的功耗。坛友们有遇到过类似问题吗?是如何处理的?
    发表于 11-28 07:00

    处理未使用IO的核心原则分享

    1、避免引脚浮空(Floating):浮空引脚可能因感应噪声导致漏电流或意外电平跳变。 2、最小化静态功耗:配置为低功耗状态,减少对电源系统的电流消耗。 3、防止意外触发:避免引脚因外部干扰误触发
    发表于 11-21 06:50

    GPIO中断设计中边沿触发和电平触发的区别是什么

    在嵌入式系统中,GPIO中断的边沿触发(Edge-Triggered)和电平触发(Level-Triggered)是两种核心中断检测机制,其设计差异直接影响系统稳定性与实时性。 边沿
    发表于 11-17 06:59

    求助,关于蜂鸟mcu外部中断的问题求解

    请问我如果想知道具体是哪个外部中断触发,该看哪个plic寄存器呢,是看pending吗还是claim/complete,claim/complete这个寄存器是什么意思呢,我看他的地址
    发表于 11-07 07:14

    RVMCU课堂「12」: 手把手教你玩转RVSTAR—外部中断

    有多个外部中断源,具体包含哪些外部中断,可以在GD32VF103用户手册的第六章:中断/事件控制器(EXTI)中查看。 本次实验使用用户按键
    发表于 10-31 07:39

    利用蜂鸟E203搭建SoC【2】——外部中断扩展与验证

    按键,即触发中断,进入中断程序。Block Design连接如下图所示,其中gpio中断连接到usr_irq_0上。 软件部分,可以通
    发表于 10-29 07:14

    瑞萨RA系列MCU的外部引脚中断详解

    上一章节我们已经详细介绍了NVIC、ICU、ELC、NMI并对RA系列MCU的中断管理系统有个全局的了解,我们这一章节的内容是如何控制外部中断,也是内核里的NVIC的实例应用,这也是RA系列MCU非常重要的一个
    的头像 发表于 09-23 09:38 2179次阅读
    瑞萨RA系列MCU的<b class='flag-5'>外部</b>引脚<b class='flag-5'>中断</b>详解

    何时使用 GPIO 中断外部中断

    何时使用 GPIO 中断外部中断
    发表于 08-26 07:27

    存储示波器触发电平设置不当导致什么后果?

    触发电平(Trigger Level)是存储示波器捕获稳定波形、定位关键事件的核心参数。若设置不当,导致波形显示异常、触发不稳定、关键信号丢失等问题,甚至影响测试结果的准确性。以下为详细分析及应对
    发表于 05-29 14:13

    第六章 外部中断

    本章介绍W55MH32的IO口作为外部中断输入的使用。先阐述了NVIC(嵌套向量中断控制器) 的结构、寄存器、优先级及相关函数,再说明EXTI(外部
    的头像 发表于 05-26 16:27 1704次阅读
    第六章 <b class='flag-5'>外部</b><b class='flag-5'>中断</b>

    极海APM32F003触发NMI中断的解决方案

    问题:APM32F003F6P6 PC3配置成外部中断口,下拉触发之后没有进入EINTC_IRQHandler外部中断函数,反而一直
    的头像 发表于 05-24 14:44 1105次阅读
    极海APM32F003<b class='flag-5'>触发</b>NMI<b class='flag-5'>中断</b>的解决方案