外部中斷為什么會誤觸發?

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.pswp.cn/news/165675.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/165675.shtml
英文地址,請注明出處:http://en.pswp.cn/news/165675.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數 組

數組格式 普通數組下標是數字 關聯數組下標是字符串 例子: a(10 20 30 40 50) a[0] 10 數組的分類(普通數組和關聯數組) 普通數組 可以不需要手動聲明,直接使用 declare -a 數組名 關聯數組 一定要手動聲明 adeclare …

通過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. 優化工業設備的通訊效率:了解通訊協議的細節可以幫助我們找到通訊效率低下的原因并進行優化,提高設備的通訊效率和…

Axioss筆記

一、Get請求 // 請求頭攜帶參數,案例:?uid1001 axios.get(http://localhost:8080/user/api/v1/user/query, {params: {uid: 1001}}).then(res > {console.log(res.data) }).catch(err > {console.log("請求錯誤" err) }).finally(() …

MySQL 8 配置文件詳解與最佳實踐

MySQL 8 是一款強大的關系型數據庫管理系統,通過適當的配置文件設置,可以充分發揮其性能潛力。在這篇博客中,我們將深入探究 MySQL 8 常用的配置文件,并提供一些建議,幫助您優化數據庫性能。 配置文件概覽 在 MySQL …

【華為OD題庫-030】阿里巴巴找黃金寶箱(V)-java

題目 一貧如洗的樵夫阿里巴巴在去砍柴的路上&#xff0c;無意中發現了強盜集團的藏寶地&#xff0c;藏寶地有編號從0-N的箱子&#xff0c;每個箱子上面貼有一個數字.阿里巴巴念出一個咒語數字k(k<N),找出連續k個寶箱數字和的最大值&#xff0c;并輸出該最大值。 輸入描述 第…

攔截器的使用

攔截器&#xff08;Interceptor&#xff09;是一種在應用程序中用于干預、修改或攔截請求和響應的組件&#xff0c;是AOP 編程的一種實踐&#xff0c;和過濾器一樣都是一種具體的AOP實現。它可以在請求被發送到目標處理程序之前或之后&#xff0c;對請求進行預處理或對響應進行…

【數據結構】二叉樹概念 | 滿二叉樹 | 完全二叉樹

二叉樹的概念 二叉樹在實踐中用的很多。 一棵二叉樹是結點的一個有限集合&#xff0c;該集合&#xff1a; 或者為空&#xff1b;由一個根結點加上兩棵別稱為左子樹和右子樹的二叉樹組成。二叉樹最多兩個孩子。 這里注意&#xff1a;二叉樹并不是度為2的樹。 二叉樹的度最大值是…

Go lumberjack 日志輪換和管理

在開發應用程序時&#xff0c;記錄日志是一項關鍵的任務&#xff0c;以便在應用程序運行時追蹤問題、監視性能和保留審計記錄。Go 語言提供了靈活且強大的日志記錄功能&#xff0c;可以通過多種方式配置和使用。其中一個常用的日志記錄庫是 github.com/natefinch/lumberjack&am…

python selenium 模擬瀏覽器自動操作搶購腳本

每逢秒殺&#xff0c;都在遺憾網速和手速慢沒能搶購到商品吧。 手寫一個腳本&#xff0c;讓程序幫你搶&#xff0c;搶到的概率會大大提升。 廢話不多說&#xff0c;直接上代碼。 本實例以華為官網搶購手機為例 """ 模擬瀏覽器操作華為官網(1) 【只需要安裝一…