STM32的中斷與事件
接下來是編號3的或門,這個或門的另一個輸入是軟體中斷/事件暫存器,從這裡可以看出,軟體可以優先於外部訊號請求一箇中斷或事件,即當軟體中斷/事件暫存器的對應位為"1"時,不管外部訊號如何,編號3的或門都會輸出有效訊號.
一箇中斷或事件請求訊號經過編號3的或門後,進入掛起請求暫存器,到此之前,中斷和事件的訊號傳輸通路都是一致的,也就是說,掛起請求暫存器中記錄了外部訊號的電平變化。外部請求訊號最後經過編號4的與門,向NVIC中斷控制器發出一箇中斷請求,如果中斷遮蔽暫存器的對應位為"0",則該請求訊號不能傳輸到與門的另一端,實現了中斷的遮蔽.
明白了外部中斷的請求機制,就很容易理解事件的請求機制了.圖中紅色虛線箭頭,標出了外部事件訊號的傳輸路徑,外部請求訊號經過編號3的或門後,進入編號5的與門,這個與門的作用與編號4的與門類似,用於引入事件遮蔽暫存器的控制;最後脈衝發生器的一個跳變的訊號轉變為一個單脈衝,輸出到晶片中的其它功能模組.從這張圖上我們也可以知道,從外部激勵訊號來看,中斷和事件的產生源都可以是一樣的.之所以分成2個部分,由於中斷是需要CPU參與的,需要軟體的中斷服務函式才能完成中斷後產生的結果;但是事件,是靠脈衝發生器產生一個脈衝,進而由硬體自動完成這個事件產生的結果,當然相應的聯動部件需要先設定好,比如引起DMA操作,AD轉換等;
簡單舉例:外部I/O觸發AD轉換,來測量外部物品的重量;如果使用傳統的中斷通道,需要I/O觸發產生外部中斷,外部中斷服務程式啟動AD轉換,AD轉換完成中斷服務程式提交最後結果;要是使用事件通道,I/O觸發產生事件,然後聯動觸發AD轉換,AD轉換完成中斷服務程式提交最後結果;相比之下,後者不要軟體參與AD觸發,並且響應速度也更塊;要是使用事件觸發DMA操作,就完全不用軟體參與就可以完成某些聯動任務了。
總結:
可以這樣簡單的認為,事件機制提供了一個完全有硬體自動完成的觸發到產生結果的通道,不要軟體的參與,降低了CPU的負荷,節省了中斷資源,提高了響應速度(硬體總快於軟體),是利用硬體來提升CPU晶片處理事件能力的一個有效方法;
相關推薦
STM32中斷與事件的區別
中斷和事件的產生源都可以是一樣的! 之所以分成2個部分,由於中斷是需要CPU參與的,需要軟體的中斷服務函式才能完成中斷後產生的結果; 但是事件,是靠脈衝發生器產生一個脈衝,進而由硬體自動完成這個事件產生的結果,當然相應的聯動部件需要先設定好,比如引起DMA操作,AD轉換等; 簡單舉例:外部I/O觸發AD轉換,
STM32之中斷與事件---中斷與事件的區別
這張圖是一條外部中斷線或外部事件線的示意圖,圖中訊號線上劃有一條斜線,旁邊標誌19字樣的註釋,表示這樣的線路共有19套.圖中的藍色虛線箭頭,標出了外部中斷訊號的傳輸路徑,首先外部訊號從編號1的晶片管腳進入,經過編號2的邊沿檢測電路,通過編號3的或門進入中斷掛起請求暫存器,
STM32的中斷與事件
這張圖是一條外部中斷線或外部事件線的示意圖,圖中訊號線上劃有一條斜線,旁邊標誌19字樣的註釋,表示這樣的線路共有19套.圖中的藍色虛線箭頭,標出了外部中斷訊號的傳輸路徑,首先外部訊號從編號1的晶片管腳進入,經過編號2的邊沿檢測電路,通過編號3的或門進入中斷掛起請求暫存器,最後經過編號4的與門輸出到NVIC中斷
STM32 中斷和事件
凡從事過ST MCU應用開發的人往往會遇到事件、中斷事件 中斷三個概念或術語。這三個概念彼此關聯,有時會讓人有點混淆或犯迷糊。 先拿一件生活中的事情打比方對上述三個概念做個基本的粗略理解,之後再分享一個STM32 GPIO外部中斷配置案例。比如一老師在教室裡給學生們上課。課堂
stm32中斷學習篇(2)——以外部中斷為例與多箇中斷的使用
上一篇簡單寫了一下中斷的理論,給了一個定時器的例子。 這一篇主要寫一下外部中斷的例子。這個例子中使用了兩個外部中斷,使用多個的話道理差不多。 還是對照著理論把程式寫出來。 配置GPIO的部分就不說了。程式在後面給出,有詳細註釋。 直接開始說配置NVIC和
STM32中使用systick時鐘進行延時的中斷與非中斷兩種方法
一、第一種方法是進入核心中斷的方式 //以下程式是根據官方程式修改的 #include "systick.h" /* Private variables ---------------------------------------------------------*/ u32 Timin
STM32的中斷和事件
上圖框圖中對應的暫存器可以在技術手冊中找到相關的意義。 上圖19箇中斷源的意義也可以在技術手冊中找到, 可以這樣簡單的理解: 詳細點的理解: 在STM32中,中斷與事件不是等價的,一箇中斷肯定對應一個事件,但一個事件不一定對應一箇中斷。 事件只是一個觸發訊號(脈衝
STM32 中斷應用概覽
arm emp nvic ann 參考手冊 其它 文件中 type 嵌套 本章參考資料《 STM32F4xx 中文參考手冊》第十章-中斷和事件、《ARM Cortex?-M4F 技術參考手冊》 -4.3 章節: NVIC 和 4.4 章節: SCB—4.4.5 的 AIRC
JS中的事件監聽與事件流
pan 交互 ack 其他 獲得 發生 listen 監聽器 pre 事件監聽: 使用監聽器(eventListener)來預定事件,在傳統軟件工程中稱成為觀察者模式 執行某種操作時(特定的交互瞬間),會產生對象,對象會沿事件流的方向傳播。 事件流: 事件流有
C#委托與事件學習筆記
調用函數 msdn http msd proc for reac .net 委托方 今天跟隨視頻學習了一下C#中最重要的一些概念之委托與事件。老楊的視頻講的還是挺深入淺出,不過剛接觸C#.NET的人還是朦朦朧朧,就像張子陽先生說的“每次見到委托和事件就覺得心裏別
Redis 內存管理與事件處理
erp 監聽端口 nal 回調 files poll 其中 監聽服務 repl 1 Redis內存管理 Redis內存管理相關文件為zmalloc.c/zmalloc.h,其只是對C中內存管理函數做了簡單的封裝,屏蔽了底層平臺的差異,並增加了內存使用情況統計的功能。 v
C# 委托與事件
觀察 自動完成 代碼 委托 約定 .html 完成 blog htm c#事件 委托: 1.類似觀察者模式。 2.當某個對象(類),執行某個動作時,之前委托的事情會自動完成。 (如B,C訂閱A的事件,當A執行某動作,B和C均會按照約定進行對應動作)使用步驟
c# 委托與事件的區別
變量 del 另一個 ext 類型 編譯 擴展 hand 例子 委托與事件的區別 委托和事件沒有可比性,因為委托是數據類型,事件是對象(可以理解為對委托變量的封裝。),下面說的是委托的對象(用委托方式實現的事件)和(標準的event方式實現)事件的區別。事件的內部是用委托
事件捕獲與事件冒泡
點擊 web 不想 dhtml 參考 model 兼容 dom style 一、背景 假設有一個HTML代碼片段如下: <div id="div"> <input type="button" value="點擊測試"></input&
QT中的線程與事件循環理解(2)
註釋 由於 做什麽 hid post 適用於 tsig call 循環 1. Qt多線程與Qobject的關系 每一個 Qt 應用程序至少有一個事件循環,就是調用了QCoreApplication::exec()的那個事件循環。不過,QThread也可以開啟事件循環
js 事件冒泡與事件捕獲
nodename 瀏覽器兼容 而不是 rop 希望 bubble lis 彈出 element 一、事件冒泡 事件冒泡是指在事件發生過程中先從目標節點開始執行,並一層一層的相父節點依次查詢直到document,並執行相同事件的過程。 btn1.addEventListe
事件流,事件捕獲與事件冒泡-基礎知識總結------彭記(018)
sca ie9 com pre 類型 har code 做出 viewport 事件流: -事件流包括三個階段-事件捕獲階段、處於目標階段和事件冒泡階段。 -首先發生的是事件捕獲,為截獲事件提供了機會,然後是實際的目標接收到事件,最後一個階段是冒泡階段,可以在這個階段對事件
委托與事件
list 異步多線程 one for 順序 邏輯 外部 each 聲明 委托是一種類型;事件是委托的一個實例。委托的意義:異步多線程、邏輯分離 public delegate void CateAction();//委托 public event CateAction Ca
信號槽 與事件區別
消息傳遞 only nbc 普通 阻塞 send cat 自動分配 aware 信號槽 與事件區別 仔細來看,事件與信號其實並無多大差別,從我們對其需求上來說,都只要能註冊事件或信號響應函數,在事件或信號產生時能夠被通知到即可。但有一項區別在於,事件處理函數的返回值是有
Vue深度學習(4)-方法與事件處理器
() 一個 span 修飾 語句 特殊變量 方法 left stop 方法處理器 可以用 v-on 指令監聽 DOM 事件: <div id="app"> <button v-on:click = "greet">Greet<