STM32 中斷與事件

2021-07-29 09:53:36 字數 2140 閱讀 5578

原文:

這張圖是一條外部中斷線或外部事件線的示意圖

,圖中訊號線上劃有一條斜線

,旁邊標誌

19字樣的注釋

,表示這樣的線路共有19套

.圖中的藍色虛線箭頭

,標出了外部中斷訊號的傳輸路徑

,首先外部訊號從編號

1的晶元管腳進入

,經過編號

2的邊沿檢測電路

,通過編號

3的或門進入中斷掛起請求暫存器

,最後經過編號

4的與門輸出到

nvic

中斷檢測電路

,這個邊沿檢測電路受上公升沿或下降沿選擇暫存器控制

,使用者可以使用這兩個暫存器控制需要哪乙個邊沿產生中斷

,因為選擇上公升沿或下降沿是分別受

2個平行的暫存器控制

,所以使用者可以同時選擇上公升沿或下降沿

,而如果只有乙個暫存器控制

,那麼只能選擇乙個邊沿了.

按下來是編號

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中斷與事件的區別

事件是中斷的觸發源,開放了對應的中斷遮蔽位,則事件可以觸發相應的中斷。事件還是其它一些操作的觸發源,比如dma,還有tim中影子暫存器的傳遞與更新 簡單點就是中斷一定要有中斷服務函式,但是事件卻沒有對應的函式.但是事件可以觸發其他關聯操作,比如觸發dma,觸發adc取樣等.可以在不需要cpu干預的情...

stm32中斷優先順序 STM32中斷系統

stm32 中斷非常強大,幾乎每個外設都可以產生中斷,因此這裡我們單獨使用一章來介紹它,為後面介紹外設中斷做鋪墊。學習本章可以參考 stm32f10x中文參考手冊 9 中斷和事件章節,cortex m3 權威指南 中文 chpt08 nvic與中斷控制章節。中斷概念 在學習 51 微控制器時,我們就...

STM32中斷巢狀

cortex m3核心支援256個中斷,其中包括16個核心中斷和240個外部中斷,且具有256級的可程式設計中斷設定,而stm32只用了其中一部分。stm32有84個中斷,包括16個核心中斷和68個可遮蔽中斷,具有16級可程式設計中斷優先順序。而我所使用的103系列只有60個可遮蔽中斷。優先順序的判...