国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32的中斷系統(tǒng)詳解(嵌入式學(xué)習(xí))

這篇具有很好參考價值的文章主要介紹了STM32的中斷系統(tǒng)詳解(嵌入式學(xué)習(xí))。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. 基本概念

中斷是處理器中的一種機制,用于響應(yīng)和處理突發(fā)事件或緊急事件。當(dāng)發(fā)生中斷時,當(dāng)前正在執(zhí)行的程序會被暫時中止,處理器會跳轉(zhuǎn)到中斷處理程序(也稱為中斷服務(wù)例程),對中斷事件進行處理。處理完中斷后,處理器再返回到被中斷的程序繼續(xù)執(zhí)行。

中斷可以分為內(nèi)部中斷和外部中斷:

  1. 內(nèi)部中斷:由處理器內(nèi)部的模塊或事件引發(fā),例如定時器溢出、串口接收緩沖區(qū)非空等。內(nèi)部中斷可以用于定期執(zhí)行特定任務(wù)、檢測狀態(tài)變化等。

  2. 外部中斷:由外部設(shè)備或外部信號引發(fā),例如按鍵按下、外部傳感器信號變化等。外部中斷用于響應(yīng)外部事件,并及時處理相關(guān)任務(wù)。

處理器中的中斷機制使得處理器能夠在執(zhí)行主程序的同時,對重要事件做出及時響應(yīng),提高系統(tǒng)的實時性和靈活性。通過適當(dāng)配置中斷優(yōu)先級和中斷使能,可以對不同的中斷進行管理和控制,確保高優(yōu)先級的中斷能夠及時被處理。
stm32的中斷機制,嵌入式底層,stm32,單片機,學(xué)習(xí),嵌入式硬件

在STM32微控制器中,中斷系統(tǒng)是用于處理外部事件和優(yōu)先級的重要機制。它允許微控制器在執(zhí)行主程序的同時,對發(fā)生的特定事件作出及時響應(yīng)。以下是STM32中斷系統(tǒng)的基本概念:

  1. 中斷向量表(Interrupt Vector Table):中斷向量表是一個存儲中斷處理程序地址的表格。每個中斷都有一個特定的向量,當(dāng)中斷發(fā)生時,微控制器會根據(jù)中斷向量表中相應(yīng)中斷的地址跳轉(zhuǎn)到對應(yīng)的中斷處理程序。

  2. 中斷請求(Interrupt Request):也稱為中斷源或中斷事件,是指外部設(shè)備或內(nèi)部模塊發(fā)出的信號,通知微控制器發(fā)生了一個特定的事件,例如按鍵按下、定時器溢出等。

  3. 中斷控制器(Interrupt Controller):中斷控制器負責(zé)對中斷請求進行管理和分配優(yōu)先級。STM32微控制器通常具有多個中斷控制器模塊,如NVIC(Nested Vectored Interrupt Controller)。

  4. 中斷優(yōu)先級(Interrupt Priority):每個中斷都具有一個優(yōu)先級,用于確定中斷處理程序的執(zhí)行順序。較高優(yōu)先級的中斷會打斷正在執(zhí)行的較低優(yōu)先級中斷或主程序。

  5. 中斷處理程序(Interrupt Service Routine,ISR):也稱為中斷服務(wù)函數(shù),是一段用于處理特定中斷的代碼。當(dāng)中斷發(fā)生時,微控制器會跳轉(zhuǎn)到相應(yīng)的中斷處理程序執(zhí)行相關(guān)操作,處理完畢后返回主程序。

  6. 中斷使能(Interrupt Enable):通過設(shè)置相應(yīng)的中斷使能位,可以啟用或禁用特定的中斷。禁用中斷后,即使中斷請求發(fā)生,微控制器也不會響應(yīng)。

  7. 中斷標(biāo)志(Interrupt Flag):中斷標(biāo)志用于指示特定中斷是否已經(jīng)發(fā)生。在處理完中斷后,需要清除相應(yīng)的中斷標(biāo)志,以便再次觸發(fā)相同中斷。

使用STM32時,您可以通過配置中斷向量表、中斷優(yōu)先級和中斷使能來管理和處理各種中斷請求。中斷系統(tǒng)使得微控制器能夠及時響應(yīng)外部事件,提高系統(tǒng)的實時性和并發(fā)處理能力。

2. 中斷的意義

中斷能夠?qū)ν话l(fā)事件進行及時處理,實現(xiàn)程序的并行化,進而提高CPU的工作效率。
中斷在計算機系統(tǒng)中具有重要的意義,以下是一些中斷的重要意義:

  1. 實時響應(yīng):中斷使得處理器能夠及時響應(yīng)外部事件或緊急事件。通過中斷機制,處理器可以立即中止當(dāng)前的任務(wù),轉(zhuǎn)而處理中斷請求,確保對重要事件的實時響應(yīng)。

  2. 異步處理:中斷機制允許處理器異步地處理中斷事件,而不需要依賴于主程序的執(zhí)行。這使得處理器可以在執(zhí)行主程序的同時,處理并發(fā)發(fā)生的多個中斷事件,提高系統(tǒng)的并發(fā)處理能力。

  3. 資源共享:中斷機制允許多個設(shè)備或模塊共享處理器的資源。不同設(shè)備或模塊可以通過中斷機制發(fā)出中斷請求,處理器根據(jù)優(yōu)先級和配置來處理這些中斷,從而實現(xiàn)資源的合理共享和利用。

  4. 降低功耗:在某些情況下,處理器可以進入低功耗模式。通過配置中斷喚醒,處理器可以在待機或休眠狀態(tài)下,僅在特定的中斷事件發(fā)生時喚醒,從而降低系統(tǒng)的功耗。

  5. 優(yōu)先級管理:中斷機制允許對不同中斷請求進行優(yōu)先級管理。通過設(shè)置中斷優(yōu)先級,處理器可以確保高優(yōu)先級的中斷得到及時處理,從而提高系統(tǒng)的實時性和響應(yīng)能力。

  6. 系統(tǒng)可靠性:中斷機制有助于提高系統(tǒng)的可靠性和容錯性。通過合理的中斷處理程序設(shè)計和錯誤處理機制,可以在出現(xiàn)異?;蝈e誤情況時,及時響應(yīng)并采取適當(dāng)措施,從而保證系統(tǒng)的穩(wěn)定性和可靠性。

總之,中斷機制在計算機系統(tǒng)中起著至關(guān)重要的作用,它能夠提高系統(tǒng)的實時性、并發(fā)處理能力、資源共享能力,并為系統(tǒng)的可靠性和可維護性提供支持。

3. 中斷處理過程

處理過程

stm32的中斷機制,嵌入式底層,stm32,單片機,學(xué)習(xí),嵌入式硬件
進入中斷

  • 處理器自動保存現(xiàn)場到堆棧里
  • {PC, xPSR, R0-R3, R12, LR}
  • 一旦入棧結(jié)束,ISR便可開始執(zhí)行

退出中斷

  • 中斷前的現(xiàn)場被自動從堆棧中恢復(fù)
  • 一旦出棧完成,繼續(xù)執(zhí)行被中斷打斷的指令
  • 出棧的過程也可被打斷,使得隨時可以響應(yīng)新的中斷而不再進行現(xiàn)場保存
    R0 - R12
    R13 棧指針 SP : 指向棧頂?shù)刂?br> R14 鏈接寄存器 LR :存放返回地址
    R15 程序計數(shù)器 PC :保存要執(zhí)行的指令地址

過程詳述

  1. 中斷請求觸發(fā):外部設(shè)備或內(nèi)部模塊發(fā)出中斷請求,通知處理器發(fā)生了一個特定的事件。

  2. 中斷檢測和響應(yīng):處理器在適當(dāng)?shù)臅r間檢測中斷請求,并根據(jù)中斷控制器的設(shè)置確定是否響應(yīng)中斷。如果中斷被允許并且具有較高優(yōu)先級,則處理器會中止當(dāng)前的任務(wù),轉(zhuǎn)而處理中斷事件。

  3. 保存上下文:在處理中斷之前,處理器需要保存當(dāng)前任務(wù)的上下文信息,以便在中斷處理完畢后能夠正確恢復(fù)到被中斷的任務(wù)繼續(xù)執(zhí)行。上下文信息包括程序計數(shù)器(PC)、寄存器內(nèi)容等。

  4. 中斷向量查找:處理器使用中斷向量表(或中斷向量地址表)確定中斷處理程序的地址。中斷向量表是一個存儲中斷處理程序地址的數(shù)據(jù)結(jié)構(gòu),根據(jù)中斷號或中斷源的標(biāo)識找到相應(yīng)的中斷處理程序地址。

  5. 中斷處理程序執(zhí)行:處理器跳轉(zhuǎn)到中斷處理程序的地址開始執(zhí)行中斷處理代碼。中斷處理程序負責(zé)處理特定中斷的操作,例如讀取外部設(shè)備的數(shù)據(jù)、更新狀態(tài)、觸發(fā)其他任務(wù)等。

  6. 中斷處理完畢:當(dāng)中斷處理程序完成相關(guān)操作后,處理器會執(zhí)行相應(yīng)的清理工作,包括清除中斷標(biāo)志、恢復(fù)保存的上下文信息等。

  7. 恢復(fù)上下文:處理器使用之前保存的上下文信息來恢復(fù)被中斷的任務(wù)的狀態(tài)。這包括還原程序計數(shù)器、寄存器值等,以確保任務(wù)能夠從中斷被中止的地方繼續(xù)執(zhí)行。

  8. 重新開始執(zhí)行:恢復(fù)了被中斷任務(wù)的上下文后,處理器重新開始執(zhí)行被中斷的任務(wù),繼續(xù)之前被中斷的代碼流程。

需要注意的是,具體的中斷處理過程可能會因處理器架構(gòu)、操作系統(tǒng)和應(yīng)用程序的不同而有所差異。上述步驟提供了一般性的中斷處理過程的基本流程。

4. 中斷體系結(jié)構(gòu)

stm32的中斷機制,嵌入式底層,stm32,單片機,學(xué)習(xí),嵌入式硬件

5. NVIC

概念

嵌套向量中斷控制器(Nested Vectored Interrupt Controller)

NVIC(Nested Vectored Interrupt Controller)是一種中斷控制器,用于管理中斷系統(tǒng)和中斷請求在ARM Cortex-M處理器中的操作。以下是與NVIC相關(guān)的幾個概念:

  1. 中斷優(yōu)先級(Interrupt Priority):NVIC允許為不同的中斷設(shè)置優(yōu)先級。優(yōu)先級決定了中斷的相對順序,當(dāng)多個中斷同時發(fā)生時,具有較高優(yōu)先級的中斷將先被處理。NVIC通常支持多級優(yōu)先級,可以進一步細化中斷的優(yōu)先級設(shè)置。

  2. 中斷向量表(Interrupt Vector Table):中斷向量表是一個存儲中斷處理程序地址的表格。NVIC負責(zé)管理中斷向量表,并在中斷發(fā)生時根據(jù)中斷號找到相應(yīng)的中斷處理程序地址。每個中斷在中斷向量表中占據(jù)一個位置,該位置存儲了相應(yīng)中斷處理程序的地址。

  3. 中斷使能(Interrupt Enable):NVIC允許通過設(shè)置中斷使能位來啟用或禁用特定的中斷。啟用中斷后,中斷請求才能被識別和處理。禁用中斷后,即使中斷請求發(fā)生,處理器也不會響應(yīng)。

  4. 中斷掛起(Interrupt Pending):NVIC具有中斷掛起功能,用于標(biāo)識正在等待處理的中斷請求。當(dāng)中斷請求發(fā)生時,如果該中斷已被掛起,它將等待處理器處理。這使得處理器可以按照優(yōu)先級順序處理掛起的中斷。

  5. 中斷嵌套(Interrupt Nesting):NVIC支持中斷嵌套功能,即當(dāng)一個中斷正在處理時,如果更高優(yōu)先級的中斷請求發(fā)生,處理器可以中斷當(dāng)前中斷的處理,轉(zhuǎn)而處理更高優(yōu)先級的中斷。這種中斷嵌套機制允許處理多個并發(fā)的中斷事件,并確保較高優(yōu)先級的中斷得到及時處理。

  6. 中斷處理程序(Interrupt Service Routine,ISR):中斷處理程序是與特定中斷相關(guān)聯(lián)的代碼塊。當(dāng)中斷請求被響應(yīng)時,NVIC會跳轉(zhuǎn)到相應(yīng)中斷處理程序的地址,執(zhí)行其中斷處理代碼。中斷處理程序負責(zé)處理中斷事件,并在處理完畢后返回到原來的執(zhí)行點。

通過使用NVIC,可以對中斷系統(tǒng)進行靈活配置和管理,調(diào)整中斷優(yōu)先級、使能或禁用中斷,并實現(xiàn)中斷處理程序的跳轉(zhuǎn)和嵌套。這樣能夠使處理器能夠高效地響應(yīng)和處理中斷請求,提高系統(tǒng)的實時性和并發(fā)處理能力。

主要功能

NVIC(Nested Vectored Interrupt Controller)是STM32系列微控制器中的中斷控制器模塊,其主要功能如下:

  1. 中斷優(yōu)先級管理:NVIC用于管理不同中斷的優(yōu)先級。它允許對中斷請求進行優(yōu)先級分配,確保高優(yōu)先級的中斷能夠及時被處理。NVIC支持多級中斷優(yōu)先級,可以細化不同中斷的優(yōu)先級設(shè)置。

  2. 中斷使能和禁止:NVIC提供了使能和禁止中斷的功能。通過設(shè)置相應(yīng)的中斷使能位,可以啟用或禁用特定的中斷。禁用中斷后,即使中斷請求發(fā)生,處理器也不會響應(yīng)。這對于在特定情況下臨時屏蔽某些中斷是很有用的。

  3. 中斷嵌套:NVIC支持中斷的嵌套。當(dāng)一個中斷正在處理時,如果發(fā)生了更高優(yōu)先級的中斷請求,NVIC可以中斷當(dāng)前中斷的處理,轉(zhuǎn)而處理更高優(yōu)先級的中斷。這種嵌套中斷機制使得處理器可以有效地管理多個并發(fā)的中斷事件。 不同優(yōu)先級的中斷同時發(fā)生,優(yōu)先處理優(yōu)先級編號較小的那個,同樣優(yōu)先級的中斷同時發(fā)生,中斷向量號較小的那個優(yōu)先響應(yīng)

  4. 中斷狀態(tài)控制:NVIC提供了一些功能來控制中斷的狀態(tài)。它可以查詢中斷是否處于掛起狀態(tài)、中斷是否正在處理中,以及中斷是否已經(jīng)完成處理。這些狀態(tài)信息對于實時系統(tǒng)的調(diào)度和管理非常有用。

  5. 中斷向量表管理:NVIC用于管理中斷向量表。中斷向量表是一個存儲中斷處理程序地址的表格。NVIC允許在運行時修改中斷向量表的地址,以實現(xiàn)中斷處理程序的動態(tài)配置和切換。stm32的中斷機制,嵌入式底層,stm32,單片機,學(xué)習(xí),嵌入式硬件

總的來說,NVIC作為STM32微控制器的中斷控制器模塊,提供了對中斷優(yōu)先級、中斷使能和禁止、中斷嵌套、中斷狀態(tài)以及中斷向量表的管理功能。它在中斷系統(tǒng)的配置和管理中起著關(guān)鍵作用,確保中斷能夠按照優(yōu)先級順序得到及時響應(yīng)和處理。

6. EXTI

概念

EXTI(External Interrupt)是STM32微控制器中的 外部中斷控制器 ,用于處理外部引腳的中斷請求。EXTI模塊與NVIC緊密合作,使得處理器能夠響應(yīng)外部事件并執(zhí)行相應(yīng)的中斷處理程序。

以下是EXTI的主要特點和功能:

  1. 外部中斷線:EXTI模塊與微控制器的外部引腳相連,通過配置外部中斷線,可以將特定的外部引腳與EXTI關(guān)聯(lián)起來,以便監(jiān)測其狀態(tài)變化并觸發(fā)中斷請求。

  2. 中斷觸發(fā)方式:EXTI支持多種中斷觸發(fā)方式,包括上升沿觸發(fā)、下降沿觸發(fā)、雙邊沿觸發(fā)等??梢愿鶕?jù)需求配置中斷觸發(fā)方式,以適應(yīng)不同的外部事件。

  3. 中斷屏蔽和使能:EXTI允許對不同的外部中斷進行屏蔽和使能。通過配置相應(yīng)的屏蔽位,可以控制特定中斷是否允許觸發(fā)中斷請求。這對于臨時屏蔽某些中斷或動態(tài)調(diào)整中斷使能狀態(tài)很有用。

  4. 中斷線映射:STM32微控制器通常具有多個外部中斷線和多個GPIO引腳。EXTI允許將不同的外部中斷線映射到特定的GPIO引腳,從而實現(xiàn)外部中斷與引腳之間的關(guān)聯(lián)。

  5. 中斷優(yōu)先級:與NVIC配合使用,EXTI允許為不同的外部中斷設(shè)置優(yōu)先級。優(yōu)先級決定了中斷的相對順序,當(dāng)多個中斷同時觸發(fā)時,具有較高優(yōu)先級的中斷將先被處理。

  6. 中斷處理回調(diào)函數(shù):通過配置EXTI的中斷處理回調(diào)函數(shù),可以在中斷觸發(fā)時執(zhí)行特定的代碼。這樣,當(dāng)外部事件發(fā)生時,可以自動跳轉(zhuǎn)到預(yù)定義的中斷處理回調(diào)函數(shù),執(zhí)行相應(yīng)的操作。

EXTI模塊提供了一種方便的方式來處理外部事件的中斷請求,它與GPIO引腳相連,允許監(jiān)測外部引腳狀態(tài)的變化,并通過中斷機制觸發(fā)相應(yīng)的中斷請求。這使得處理器能夠及時響應(yīng)外部事件,并執(zhí)行相應(yīng)的中斷處理程序。

主要功能

一個功能是產(chǎn)生中斷,另一個功能就是產(chǎn)生事件。
產(chǎn)生中斷的目的,是將信號送入NVIC,進而運行中斷服務(wù)程序,實現(xiàn)對應(yīng)功能,是軟件級。
產(chǎn)生事件的目的,是將采集到的一個脈沖信號送到某個外設(shè),進而驅(qū)動某些設(shè)備做出動作,是電路級別的傳輸,是硬件級的。

結(jié)構(gòu)框圖

stm32的中斷機制,嵌入式底層,stm32,單片機,學(xué)習(xí),嵌入式硬件
stm32的中斷機制,嵌入式底層,stm32,單片機,學(xué)習(xí),嵌入式硬件

編號1是信號輸入線,EXTI支持產(chǎn)生多達28個外部事件/中斷請求。

編號2是邊沿檢測電路,用于監(jiān)測上升沿或下降沿信號。
它會根據(jù)上升沿觸發(fā)選擇寄存(EXTI_RTSR)和下降沿觸發(fā)選擇寄存器(EXTI_FTSR)對應(yīng)位的設(shè)置來控制信號觸發(fā)。
邊沿檢測電路以輸入線作為信號輸入端,監(jiān)測是否有邊沿跳變,檢測到有邊沿跳變輸出有效信號 1 給編號 3 電路,否則輸出無效信號0。

編號3是一個或門電路,信號來源是外部事件或者軟件中斷/事件寄存器產(chǎn)生。
允許我們通過程序控制EXTI_SWIER就可以啟動中斷/事件線

編號4是一個與門電路,信號來源是編號3送來的信號和中斷屏蔽寄存器的值,
如果中斷屏蔽寄存器為0,也不會將信號送到NVIC,
只有編號3送來了中斷信號且中斷屏蔽寄存器允許產(chǎn)生中斷,才會將中斷信號送入NVIC.

紅色虛線指示的電路流程。它是一個產(chǎn)生事件的線路,最終輸出一個脈沖信號。
產(chǎn)生事件線路是在編號3電路之后與中斷線路有所不同,之前電路都是共用的。

編號5是一個與門電路,信號來源是編號3送來的信號和事件屏蔽寄存器的值,
如果事件屏蔽寄存器為0,不會將信號送到脈沖發(fā)生器,
只有編號3送來了信號且事件屏蔽寄存器允許產(chǎn)生事件,才會將信號送入脈沖發(fā)生器(編號6), 進而產(chǎn)生脈沖來控制外部設(shè)備做出動作。	
這樣我們可以簡單的控制 EXTI_EMR 來實現(xiàn)是否要產(chǎn)生事件的目的

中斷和事件的區(qū)別

中斷和事件是兩個相關(guān)但不完全相同的概念,它們有以下區(qū)別:

  1. 觸發(fā)方式:中斷是由硬件觸發(fā)的,通常是外部設(shè)備或內(nèi)部模塊向處理器發(fā)送中斷請求,表示發(fā)生了一個緊急事件,需要立即處理。而事件是由軟件或系統(tǒng)內(nèi)部邏輯觸發(fā)的,通常是特定條件滿足或特定操作完成時發(fā)生,可以是預(yù)定的操作、狀態(tài)改變或用戶交互等。

  2. 響應(yīng)時間:中斷具有實時性要求,處理器需要盡快響應(yīng)中斷請求并執(zhí)行中斷處理程序,以處理緊急事件。事件通常沒有嚴格的實時性要求,可以在系統(tǒng)的下一個時間片或任務(wù)調(diào)度中被處理。

  3. 優(yōu)先級:中斷通常具有優(yōu)先級,不同的中斷可以根據(jù)優(yōu)先級進行排序,優(yōu)先級高的中斷會先得到處理。事件通常沒有優(yōu)先級,它們在觸發(fā)時按照先來先服務(wù)的順序被處理。

  4. 中斷處理程序:中斷通常需要編寫專門的中斷處理程序(ISR,Interrupt Service Routine),用于處理中斷事件。中斷處理程序是一段特定的代碼,負責(zé)響應(yīng)中斷、執(zhí)行特定操作并返回。事件的處理通常是通過調(diào)用適當(dāng)?shù)暮瘮?shù)、方法或執(zhí)行特定的代碼塊來完成。

  5. 上下文切換:中斷的發(fā)生會導(dǎo)致處理器從當(dāng)前任務(wù)或上下文切換到中斷處理程序的上下文,處理完中斷后再返回原來的上下文。事件的處理通常不需要上下文切換,系統(tǒng)可以直接在當(dāng)前任務(wù)的上下文中處理事件。

雖然中斷和事件有一些區(qū)別,但它們在實際系統(tǒng)中通常是緊密結(jié)合的。中斷通常用于響應(yīng)實時事件和外部設(shè)備的緊急情況,而事件用于處理軟件內(nèi)部邏輯、狀態(tài)變化和用戶交互等非緊急情況。通過合理使用中斷和事件,可以實現(xiàn)系統(tǒng)的高效響應(yīng)和處理能力。

7. 總結(jié)

STM32微控制器的中斷系統(tǒng)是其重要的功能之一,它允許處理器在運行過程中響應(yīng)外部事件和緊急情況。:

  1. 中斷向量表(Interrupt Vector Table):中斷向量表是一個存儲中斷處理程序地址的表格。對于每個中斷,中斷向量表中都有一個相應(yīng)的入口,存儲了對應(yīng)中斷處理程序的地址。當(dāng)中斷請求發(fā)生時,處理器會根據(jù)中斷號查找中斷向量表,并跳轉(zhuǎn)到相應(yīng)的中斷處理程序執(zhí)行。

  2. NVIC(Nested Vectored Interrupt Controller):NVIC是STM32微控制器中的中斷控制器,負責(zé)管理和控制中斷。NVIC允許為每個中斷設(shè)置優(yōu)先級,配置中斷觸發(fā)方式,并提供中斷使能和禁止功能。它還支持中斷嵌套,即在處理一個中斷時能夠中斷當(dāng)前中斷處理程序處理更高優(yōu)先級的中斷。

  3. 中斷優(yōu)先級:STM32中斷系統(tǒng)支持多級中斷優(yōu)先級。通過配置中斷優(yōu)先級,可以確定中斷的相對順序。具有較高優(yōu)先級的中斷會優(yōu)先被處理,以確保對緊急事件的及時響應(yīng)。

  4. 中斷觸發(fā)方式:STM32支持多種中斷觸發(fā)方式,包括上升沿觸發(fā)、下降沿觸發(fā)、雙邊沿觸發(fā)等??梢愿鶕?jù)外部事件的特性和需求配置相應(yīng)的中斷觸發(fā)方式。

  5. 中斷處理程序(Interrupt Service Routine,ISR):中斷處理程序是與特定中斷相關(guān)聯(lián)的代碼塊。當(dāng)中斷請求被觸發(fā)時,處理器會跳轉(zhuǎn)到對應(yīng)的中斷處理程序執(zhí)行相應(yīng)的操作。中斷處理程序負責(zé)處理中斷事件,可以執(zhí)行必要的操作、讀取和寫入相關(guān)寄存器等。

  6. 中斷優(yōu)先級分組:STM32中斷系統(tǒng)支持將中斷優(yōu)先級分組,以提供更靈活的優(yōu)先級管理。中斷優(yōu)先級分組可以分為幾個組,并在每個組中設(shè)置優(yōu)先級位數(shù)。這樣可以在更精細的層面上配置中斷優(yōu)先級,以適應(yīng)不同中斷之間的優(yōu)先級關(guān)系。

  7. 中斷標(biāo)志和清除:STM32中斷系統(tǒng)提供中斷標(biāo)志和清除機制。當(dāng)一個中斷請求發(fā)生時,相應(yīng)的中斷標(biāo)志位會被設(shè)置。在處理完中斷后,需要手動清除中斷標(biāo)志位,以便重新使能該中斷。

  8. 中斷控制器和外設(shè)的配合:STM32微控制器的外設(shè)通常具有自己的中斷控制器和中斷請求。外設(shè)通過中斷請求線將外設(shè)通過中斷請求線將中斷信號發(fā)送給中斷控制器。中斷控制器負責(zé)接收和處理外設(shè)的中斷請求,并將其映射到相應(yīng)的中斷向量表中的中斷號。處理器通過NVIC與中斷控制器協(xié)作,根據(jù)中斷號找到對應(yīng)的中斷處理程序,并執(zhí)行相應(yīng)的操作。

  9. 嵌套中斷和優(yōu)先級:STM32中斷系統(tǒng)支持嵌套中斷,即在處理一個中斷時能夠中斷當(dāng)前中斷處理程序處理更高優(yōu)先級的中斷。這允許處理多個并發(fā)的中斷事件,并確保較高優(yōu)先級的中斷能夠及時得到處理。通過配置中斷優(yōu)先級和優(yōu)先級分組,可以管理中斷的相對順序和優(yōu)先級關(guān)系。

  10. 異常中斷:除了外部中斷,STM32還支持處理器異常(如硬件故障、指令執(zhí)行錯誤等)引發(fā)的異常中斷。這些異常中斷在處理器內(nèi)部產(chǎn)生,可以與外部中斷一起管理和處理。

中斷系統(tǒng)是STM32微控制器實現(xiàn)實時響應(yīng)和處理外部事件的關(guān)鍵機制。通過合理配置中斷優(yōu)先級、中斷觸發(fā)方式和中斷處理程序,可以有效地處理各種外部事件和緊急情況,提高系統(tǒng)的可靠性和實時性。文章來源地址http://www.zghlxwxcb.cn/news/detail-517007.html

到了這里,關(guān)于STM32的中斷系統(tǒng)詳解(嵌入式學(xué)習(xí))的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 單片機STM32看門狗詳解(嵌入式學(xué)習(xí))

    單片機STM32看門狗詳解(嵌入式學(xué)習(xí))

    單片機STM32的看門狗(Watchdog)是一種硬件定時器,用于監(jiān)控系統(tǒng)的運行狀態(tài)并在出現(xiàn)故障或死鎖時采取措施以恢復(fù)正常操作??撮T狗的主要功能是定期檢查系統(tǒng)是否正常運行,并在系統(tǒng)出現(xiàn)問題時觸發(fā)復(fù)位操作。 STM32系列單片機通常配備了內(nèi)置的看門狗定時器(通常稱為獨立

    2024年02月13日
    瀏覽(33)
  • STM32的時鐘系統(tǒng)(嵌入式學(xué)習(xí))

    STM32的時鐘系統(tǒng)(嵌入式學(xué)習(xí))

    時鐘是指用于計量和同步時間的裝置或系統(tǒng)。時鐘是嵌入式系統(tǒng)的脈搏,處理器內(nèi)核在時鐘驅(qū)動下完成指令執(zhí)行,狀態(tài)變換等動作,外設(shè)部件在時鐘的驅(qū)動下完成各種工作,例如:串口數(shù)據(jù)的發(fā)送、AD轉(zhuǎn)換、定時器計數(shù)等。因此時鐘對于計算機系統(tǒng)是至關(guān)重要的,通常時鐘系

    2024年02月16日
    瀏覽(29)
  • 嵌入式-stm32-江科大-EXTI外部中斷

    嵌入式-stm32-江科大-EXTI外部中斷

    1.1 STM32 中斷系統(tǒng) 中斷 是指在主程序運行過程中,出現(xiàn)了特定的中斷觸發(fā)條件(中斷源),使得CPU暫停當(dāng)前的程序,轉(zhuǎn)而去處理中斷程序,處理完成后又返回原來被暫停的位置繼續(xù)執(zhí)行, 當(dāng)中斷發(fā)生時是由硬件自動調(diào)用中斷函數(shù)執(zhí)行的,期間編譯器會保護現(xiàn)場最后還原現(xiàn)場

    2024年01月25日
    瀏覽(32)
  • 嵌入式開發(fā)--STM32用DMA+IDLE中斷方式串口接收不定長數(shù)據(jù)

    嵌入式開發(fā)--STM32用DMA+IDLE中斷方式串口接收不定長數(shù)據(jù)

    之前講過用 利用IDLE空閑中斷來接收不定長數(shù)據(jù) ,但是沒有用到DMA,其實用DMA會更加的高效,MCU也可以騰出更多的性能去處理應(yīng)該做的事情。 IDLE顧名思義,就是空閑的意思,即當(dāng)監(jiān)測到串口空閑超過1個串口的數(shù)據(jù)幀時,會使?fàn)顟B(tài)寄存器(SR或ISR)的IDLE位置位,如果此時控制

    2024年04月17日
    瀏覽(39)
  • 嵌入式學(xué)習(xí)---ARM中斷控制系統(tǒng)

    嵌入式學(xué)習(xí)---ARM中斷控制系統(tǒng)

    硬件中斷處理是實時系統(tǒng)設(shè)計的最重要、最關(guān)鍵的問題。 程序不斷地查詢各設(shè)備的狀態(tài),并做出相應(yīng)的反應(yīng)。該方式實現(xiàn)比較簡單,常用在比較單一的系統(tǒng)中,比如一個溫控系統(tǒng)中可以使用查詢方式不斷檢測溫度的變化。 特點:實現(xiàn)簡單;但 CPU利用率很低 ,不適合多任務(wù)的

    2024年02月03日
    瀏覽(55)
  • 嵌入式學(xué)習(xí)筆記(32)S5PV210的向量中斷控制器

    嵌入式學(xué)習(xí)筆記(32)S5PV210的向量中斷控制器

    6.6.1異常處理的2個階段 可以將異常處理分為2個階段來理解。第一個階段是異常向量表跳轉(zhuǎn);第二個階段是進入了真正的異常處理程序irq_handler之后的部分。 6.6.2回顧:中斷處理的第一個階段(異常向量表跳轉(zhuǎn)階段)處理 (1)第一個階段之所以能夠進行,主要依賴于CPU設(shè)計時

    2024年02月07日
    瀏覽(24)
  • 【嵌入式學(xué)習(xí)筆記】嵌入式基礎(chǔ)9——STM32啟動過程

    【嵌入式學(xué)習(xí)筆記】嵌入式基礎(chǔ)9——STM32啟動過程

    程序段交叉引用關(guān)系(Section Cross References):描述各文件之間函數(shù)調(diào)用關(guān)系 刪除映像未使用的程序段(Removing Unused input sections from the image):描述工程中未用到被刪除的冗余程序段(函數(shù)/數(shù)據(jù)) 映像符號表(Image Symbol Table):描述各符號(程序段/數(shù)據(jù))在存儲器中的地址、類

    2024年02月15日
    瀏覽(64)
  • 嵌入式學(xué)習(xí)筆記——STM32的時鐘樹

    嵌入式學(xué)習(xí)筆記——STM32的時鐘樹

    在之前的所有代碼編程的過程中,似乎每次都繞不開一個叫做時鐘使能的東西,當(dāng)時我們是在數(shù)據(jù)手冊上直接看其掛接在那條時鐘線上的,那么STM32內(nèi)部的時鐘到底是怎么一個構(gòu)型呢,本文來對此做一個介紹。 老規(guī)矩,一個新的名詞出現(xiàn),首先需要搞清楚它是個啥,下圖中對

    2024年02月02日
    瀏覽(24)
  • [藍橋杯嵌入式]STM32G431——第十二屆第一場省賽停車計費系統(tǒng)真題及程序設(shè)計代碼詳解

    [藍橋杯嵌入式]STM32G431——第十二屆第一場省賽停車計費系統(tǒng)真題及程序設(shè)計代碼詳解

    最近,我報名了今年的藍橋杯嵌入式比賽,為此刷了一下以往的真題。以下是我對十二屆藍橋杯省賽真題的一些思路和心得,還有一些具體代碼的實現(xiàn)。 1、相關(guān)模塊 第十二屆比賽主要用到的模塊包括:LED、KEY、LCD、TIM、USART 2、重難點分析 這道題主要目的是做一個停車管理

    2024年01月18日
    瀏覽(40)
  • 嵌入式STM32 單片機 GPIO 的工作原理詳解

    嵌入式STM32 單片機 GPIO 的工作原理詳解

    STM32的 GPIO 介紹 GPIO 是通用輸入/輸出端口的簡稱,是 STM32 可控制的引腳。GPIO 的引腳與外部硬件設(shè)備連接,可實現(xiàn)與外部通訊、控制外部硬件或者采集外部硬件數(shù)據(jù)的功能。 以 STM32F103ZET6 芯片為例子,該芯片共有 144 腳芯片,包括7個通用目的的輸入/輸出口(GPIO)組,分別為

    2024年02月20日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包