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

020a61cf8af860294617eedf7dc22d2e.png

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

1,上下拉

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

12336996654aa74181700305504eafc9.png

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

2,中断延迟检测

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

cea5b742f18a4085561c615a8438838e.png    

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

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

5caceba717296c438a4f9bca137c9fd6.png

4,施密特滞留器

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

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

40d85e8130ca5a145dcdce1223b9eb45.png

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

2e1f1570a3dd5cc4755035292a5c7660.png

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

==========

往期回顾:

有源晶振和无源晶振的区别

读取STM32芯片温度与当前供电电压

C语言求数组长度的5种方法

寄存器,HAL和LL的区别

==========

bec4cb61a04746bf61f55118fd516f95.png

8d05bf53f295612457e31646c64c6974.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/165675.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过Spring整合MyBatis实现持久层操作

文章目录 为什么要整合Spring和MyBatis?步骤一:添加依赖步骤二:配置数据源步骤三:配置MyBatis步骤四:创建Mapper接口和XML文件步骤五:使用Mapper接口拓展:事务管理 🎉通过Spring整合…

Leetcode173. 二叉搜索树迭代器

Every day a Leetcode 题目来源:173. 二叉搜索树迭代器 解法1:中序遍历 我们可以直接对二叉搜索树做一次完全的递归遍历,获取中序遍历的全部结果并保存在数组中。随后,我们利用得到的数组本身来实现迭代器。 代码&#xff1a…

竞赛 : 题目:基于深度学习的水果识别 设计 开题 技术

1 前言 Hi,大家好,这里是丹成学长,今天做一个 基于深度学习的水果识别demo 这是一个较为新颖的竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/pos…

Spark-06:共享变量

目录 1.广播变量(broadcast variables) 2.累加器(accumulators) 在分布式计算中,当在集群的多个节点上并行运行函数时,默认情况下,每个任务都会获得函数中使用到的变量的一个副本。如果变量很…

开启数据库审计(db,extended级别或os级别),并将审计文件存放到/home/oracle/audit下

文章目录 开启数据库审计(db,extended级别或os级别),并将审计文件存放到/home/oracle/audit下一. 简介二. 配置2.1. 审计是否安装2.2. 审计表空间迁移2.3. 审计参数2.4. 审计级别2.5. 其他审计选项2.6. 审计相关视图 三. 使用3.1. 开启/关闭审…

成为独立开发者有多难

首先自我介绍:我是一名前端开发工程师,7年的前端开发经验。CSDN 九段刀客_js,vue,ReactNative-CSDN博客,80多万的访问量,1万多的粉丝。 相信80%的程序员的终极梦想都是成为一名独立开发者,不用找工作有自己的产品可以有睡后收入。…

深度学习模型训练计算量的估算

深度学习模型训练计算量的估算 方法1:基于网络架构和批处理数量计算算术运算次数前向传递计算和常见层的参数数量全连接层(Fully connected layer)参数浮点数计算量 CNN参数浮点数计算量 转置CNN参数浮点数计算量 RNN参数浮点数计算量 GRU参数…

刷题学习记录(含2023ISCTFweb题的部分知识点)

[SWPUCTF 2021 新生赛]sql 进入环境 查看源码,发现是get传参且参数为wllm fuzz测试,发现空格,,and被过滤了 同样的也可以用python脚本进行fuzz测试 import requests fuzz{length ,,handler,like,select,sleep,database,delete,h…

java学习part09类的构造器

1. 2.默认构造器 如果没有显式定义任何构造器,系统会默认加一个默认构造器。 如果定义了,则不会有默认构造器。 默认构造器的权限和类的权限一样,类是public构造器就是public,类是缺省默认构造器就是缺省 反编译之后添加的构造…

解决DaemonSet没法调度到master节点的问题

最近在kubernetes部署一个springcloud微服务项目,到了最后一步部署边缘路由:使用nginx-ingress和traefik都可以,必须使用DaemonSet部署,但是发现三个节点,却总共只有两个pod。 换句话说, DaemonSet没法调度…

UML建模图文详解教程05——包图

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl本文参考资料:《UML面向对象分析、建模与设计(第2版)》吕云翔,赵天宇 著 包图概述 包图(package diagram)是用来描述模型中的…

一个最简单的工业通讯数据分析例子

1.背景 对工业设备的通讯协议进行分析可以帮助我们更好地理解其工作原理和相关技术,并且有助于以下几个方面: 1. 优化工业设备的通讯效率:了解通讯协议的细节可以帮助我们找到通讯效率低下的原因并进行优化,提高设备的通讯效率和…

MySQL 8 配置文件详解与最佳实践

MySQL 8 是一款强大的关系型数据库管理系统,通过适当的配置文件设置,可以充分发挥其性能潜力。在这篇博客中,我们将深入探究 MySQL 8 常用的配置文件,并提供一些建议,帮助您优化数据库性能。 配置文件概览 在 MySQL …

【数据结构】二叉树概念 | 满二叉树 | 完全二叉树

二叉树的概念 二叉树在实践中用的很多。 一棵二叉树是结点的一个有限集合,该集合: 或者为空;由一个根结点加上两棵别称为左子树和右子树的二叉树组成。二叉树最多两个孩子。 这里注意:二叉树并不是度为2的树。 二叉树的度最大值是…

Go lumberjack 日志轮换和管理

在开发应用程序时,记录日志是一项关键的任务,以便在应用程序运行时追踪问题、监视性能和保留审计记录。Go 语言提供了灵活且强大的日志记录功能,可以通过多种方式配置和使用。其中一个常用的日志记录库是 github.com/natefinch/lumberjack&am…

【JAVA】我们该如何规避代码中可能出现的错误?(二)

个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 文章目录 前言异常方法(Throwable类)Throwable类的方法 捕获异常多重捕获块 前言 异常是程序中的一些错误,但并不是所有的错误都是异常,并…

git-3

1.如何让工作区的文件恢复为和暂存区一样? 工作区所作的变更还不及暂存区的变更好,想从暂存区拷贝到工作区,变更工作区(恢复成和暂存区一样的状态),想到用git checkout -- 文件名 2.怎样取消暂存区部分文件的更改? 如…

无损压缩技巧:减小PDF文件尺寸的有效方法

我们在制作pdf文档的时候,会加入许多内容,文字、图片等等,素材添加的过多之后就会导致pdf文档特别大,在上传或者储存时,就会特别不方便,所以今天就告诉大家一个pdf压缩的方法,使用pdf在线压缩工…

洛谷 P1883 函数

P1883 函数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) Error Curves - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 这两题是一模一样的,过一题水两题。 分析 主要难点在于证明F(x)是一个单峰函数可以被三分,但是我随便画了几个f(x)之后发现好像…

MySQL的Redo Log跟Binlog

文章目录 概要Redo Log日志Redo Log的作用Redo Log的写入机制 Binlog日志Binlog的作用Binlog写入机制 两段提交 概要 Redo Log和Binlog是MySQL日志系统中非常重要的两种机制,也有很多相似之处,本文主要介绍两者细节和区别。 Redo Log日志 Redo Log的作…