女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32中斷,看著一篇就夠了

撞上電子 ? 2023-10-27 08:00 ? 次閱讀

1,環境搭建:

硬件平臺:STM32H750XBH6開發環境:STM32CubeMX V6.8.1+KEIL V5.28.0.0STM32H750固件版本:package V1.11.0仿真下載驅動:ST-Link

2,中斷的定義

中斷(Interrupt)微控制器中的一種機制,允許在正常程序執行期間暫停當前正在執行的任務,以處理特定事件或條件。這些事件或條件可以是來自外部的信號、設備狀態的改變、定時器觸發、錯誤條件等。中斷使系統能夠及時響應重要事件,而無需不斷輪詢或等待事件的發生。

3,中斷的分類

中斷可以根據多個因素進行分類,主要根據其來源、優先級、觸發方式和處理方式。以下是一些常見的中斷分類:
根據來源分類:A.外部中斷(External Interrupts):這些中斷來自于外部硬件或設備,如按鍵、傳感器通信接口等的觸發信號。B.內部中斷(Internal Interrupts):這些中斷源于處理器或微控制器內部的事件,如定時器計數溢出、除零錯誤等。
根據觸發方式分類:A.硬件中斷(Hardware Interrupts):硬件中斷是由硬件觸發的中斷,如外部設備產生的信號。B.軟件中斷(Software Interrupts):軟件中斷是由程序中的指令產生的,通常用于執行特定功能或服務調用。
根據優先級分類:A.可屏蔽中斷(Maskable Interrupts):這些中斷可以通過設置中斷屏蔽位來禁用或啟用。通常,系統可以控制是否屏蔽可屏蔽中斷。B.不可屏蔽中斷(Non-Maskable Interrupts,NMI):這些中斷無法被屏蔽,通常用于處理緊急或重要事件,如硬件故障。根據處理方式分類:A.同步中斷(Synchronous Interrupts):這些中斷在程序執行期間同步觸發,例如除零錯誤。B.異步中斷(Asynchronous Interrupts):這些中斷可以隨時發生,不受程序控制,例如外部硬件觸發的中斷。根據應用領域分類:A.實時中斷(Real-Time Interrupts):這些中斷需要在嚴格的時間要求內進行處理,通常用于實時系統,如航空航天、汽車控制等。B.一般用途中斷(General-Purpose Interrupts):這些中斷用于一般計算和控制任務,時間要求沒有那么嚴格。根據中斷向量表分類:A.單一中斷向量表(Single Interrupt Vector Table):整個系統使用一個中斷向量表,每個中斷在表中有唯一的入口點。B.多中斷向量表(Multiple Interrupt Vector Tables):不同的模塊或設備可能使用獨立的中斷向量表,每個表包含特定設備的中斷處理程序。


4,內部中斷與外部中斷

內部中斷和外部中斷是根據中斷的來源和觸發方式來進行分類的兩種常見中斷類型。它們在嵌入式系統和微控制器中具有不同的特點:


1. 內部中斷

來源:內部中斷是由處理器或微控制器內部的事件引發的。這些事件通常與處理器或微控制器的運行狀態和特性有關,例如定時器溢出、除零錯誤、指令執行完成等。觸發方式:內部中斷是同步的,它們在程序執行期間由內部事件引發,通常是特定指令的執行或計時器/計數器的狀態變化。屏蔽:通常,內部中斷可以通過設置中斷屏蔽位來禁用或啟用。處理器通常提供了特定的寄存器或標志位來管理內部中斷的屏蔽。例子:除零錯誤、非法指令、定時器中斷等都可以歸類為內部中斷。


2. 外部中斷:

來源:外部中斷是由外部硬件或設備觸發的事件引發的,如按鍵、傳感器、通信接口等。觸發方式:外部中斷是異步的,它們可以隨時發生,不受程序控制。通常,當外部事件滿足特定條件時,外部中斷會被觸發。屏蔽:外部中斷通常可以通過設置中斷屏蔽位來禁用或啟用。在外部中斷情況下,系統可以根據需要控制是否屏蔽外部中斷。例子:按鍵按下、傳感器觸發、串行通信接口數據接收等都可以歸類為外部中斷。


5,中斷優先級

中斷優先級分組:STM32微控制器使用中斷優先級分組來劃分中斷優先級。中斷優先級分組的設置決定了可用的優先級位數和子組位數。通常,分組位數越多,允許更精細的優先級控制。

優先級位數:在STM32中,通常有4位或3位用于中斷優先級設置,具體取決于微控制器型號。較多的優先級位數允許更精細的控制。

子組位數:某些STM32系列支持子組位數,這允許在同一主組中進一步細分優先級。

中斷優先級值:中斷優先級值是一個數字,通常在0到(2^N - 1)之間,其中N是可用的位數。較小的值表示更高的優先級。在中斷優先級寄存器中,優先級值的最高位通常是最重要的位。

中斷優先級設置:為了設置中斷優先級,您需要編程配置中斷控制器的相關寄存器。具體的設置方法和寄存器名稱可能因STM32微控制器型號而異,因此您需要查看特定型號的參考手冊和數據表。

中斷優先級分組示例:以下是一個示例,展示了如何設置中斷優先級:Group 0, Subgroup 0: 0x00 - 0x03Group 0, Subgroup 1: 0x04 - 0x07Group 1, Subgroup 0: 0x08 - 0x0B...Group 7, Subgroup 1: 0x38 - 0x3BGroup 0: 0x00 - 0x0FGroup 1: 0x10 - 0x1FGroup 2: 0x20 - 0x2F...Group 15: 0xF0 - 0xFF4位分組,0位子組:3位分組,1位子組:

4,中斷嵌套

在STM32微控制器中,中斷嵌套(Interrupt Nesting)是一種機制,允許處理多個中斷請求,并在一個中斷服務程序中嵌套地處理其他中斷。這種機制非常有用,因為它使您能夠處理多個中斷,而不需要等待一個中斷服務程序完成后才能處理下一個中斷。這提高了系統的響應性,特別是在具有多個優先級的中斷時。
以下是有關STM32中斷嵌套的一些關鍵概念:中斷嵌套優先級:STM32支持設置每個中斷請求的中斷優先級。通過設置不同的中斷優先級,您可以控制中斷的相對優先級。當多個中斷同時發生時,高優先級的中斷將優先得到處理。這確保了對緊急事件的快速響應。中斷嵌套的允許:STM32允許中斷嵌套,但它需要在中斷控制寄存器中進行相應的配置。中斷服務程序(ISR)中的中斷嵌套:如果在中斷服務程序中發生了中斷,系統會檢查新中斷的優先級。如果新中斷的優先級更高,系統會暫停當前中斷服務程序的執行,并立即開始新中斷的服務程序。一旦新中斷服務程序完成,系統會返回到原始中斷服務程序的執行點,繼續執行。中斷服務程序的嵌套深度:STM32支持多級中斷嵌套,這意味著可以在中斷服務程序中觸發其他中斷,而這些新中斷也可以再觸發其他中斷,依此類推。這允許系統以一種高度靈活的方式處理多個中斷。


5,代碼與中斷對于內核來說提供的優先級有多少位在芯片廠商設計的時候并不會用到全部,ST只用到了四位,并且默認配置使用16個主優先級,并沒有用到子優先級,我們可以看到可配置優先級為0-15 數字越大優先級越低

e59a1884-745b-11ee-9788-92fbcf53809c.png

e5ad607e-745b-11ee-9788-92fbcf53809c.png

以下是如何配置和使用 STM32 中斷的簡單步驟:

A.配置中斷源:首先,你需要配置引起中斷源。例如,如果你使用外部引腳作為中斷源,你需要配置該引腳為外部中斷模式。B.設置優先級:使用 NVIC 函數來設置中斷優先級。C.啟用中斷:再次使用 NVIC 函數啟用特定的中斷。D.編寫ISR:為特定的中斷源編寫一個處理函數。例如,如果你為 EXTI0編寫一個ISR,你可能會有一個如下的函數:

void EXTI0_IRQHandler(void) { // 處理中斷的代碼 // 清除中斷標志 EXTI_ClearITPendingBit(EXTI_Line0); }

注意:確保你的主程序中已經啟用了全局中斷。通常,這是通過__enable_irq();函數實現的。一旦中斷發生,程序將自動跳轉到相應的 ISR。確保你的 ISR 是簡短和高效的,以避免長時間的中斷延遲。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 驅動
    +關注

    關注

    12

    文章

    1900

    瀏覽量

    86530
  • STM32
    +關注

    關注

    2290

    文章

    11017

    瀏覽量

    362396
  • 設備
    +關注

    關注

    2

    文章

    4636

    瀏覽量

    71462
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    第十章 W55MH32中斷應用概覽

    本章講述了W55MH32中斷應用,涵蓋異常類型、NVIC介紹、優先級定義與分組,闡述中斷編程三要點(使能中斷、配置 NVIC、編寫服務函數),并強調優先級分組設置注意事項。
    的頭像 發表于 05-22 17:07 ?816次閱讀
    第十章 W55MH32<b class='flag-5'>中斷</b>應用概覽

    零死角玩轉STM32——系統

    本文共4冊,由于資料內存過大,分開上傳,有需要的朋友可以去主頁搜索下載哦~ 《零死角玩轉 STM32》系列教程由初級、中級、高級、系統
    發表于 05-21 14:08

    零死角玩轉STM32——高級

    本文共4冊,由于資料內存過大,分開上傳,有需要的朋友可以去主頁搜索下載哦~ 《零死角玩轉 STM32》系列教程由初級、中級、高級、系統
    發表于 05-21 14:02

    零死角玩轉STM32——中級

    本文共4冊,由于資料內存過大,分開上傳,有需要的朋友可以去主頁搜索下載哦~ 《零死角玩轉 STM32》系列教程由初級、中級、高級、系統
    發表于 05-21 13:56

    零死角玩轉STM32——初級

    本文共4冊,由于資料內存過大,分開上傳,有需要的朋友可以去主頁搜索下載哦~ 《零死角玩轉 STM32》系列教程由初級、中級、高級、系統
    發表于 05-21 13:48

    STM32中斷如此簡單(可下載)

    下面我們先來了解些基本概念:中斷中斷是什么?舉個例子來說,當我們正在工作時,突然電話響了,這時你會把手里的工作先停下來,然后去接電話,當接完電話后,電話里的人安排你馬上做件事,這
    發表于 03-24 14:27 ?0次下載

    TIM2輸入捕獲,DMA開啟中斷傳輸輸入捕獲數據,程序跑的過程,DMA一直中斷,TIM6只觸發中斷,怎么解決?

    用TIM2捕獲輸入的數據,并且通過DMA存儲,在開啟DMA中斷同時,TIM6中斷也開啟(用于計時)。但是程序跑的過程,DMA一直中斷,TIM6只觸發
    發表于 03-14 06:39

    STM32H743對關鍵中斷函數,使用ITCM搬至RAM運行,仿真進入HardFault_Handler報錯怎么解決?

    STM32H743對關鍵中斷函數,使用ITCM搬至RAM運行,STM32CubeIDE仿真進入HardFault_Handler報錯。其中,ITCM已查找網上多教程,修改了ld鏈接文
    發表于 03-07 08:04

    讓ADS7864的BUSY腳接DSP的外部中斷INT0,DSP通過中斷來讀取采樣數據,要不要先關INT0中斷呢?

    我讓ADS7864的BUSY腳接DSP的外部中斷INT0,DSP通過中斷來讀取采樣數據。請問在中斷服務程序,要不要先關INT0中斷呢?如
    發表于 01-13 06:11

    stm32 GPIO中斷配置教程

    在嵌入式開發STM32微控制器因其高性能和豐富的外設而廣受歡迎。GPIO(通用輸入/輸出)中斷STM32微控制器中常用的功能之,它允
    的頭像 發表于 11-19 15:53 ?3059次閱讀

    連塊應用于飛控測試環境斷線測試箱

    連塊概述Overviewofdisconnectedblocks連塊是種用于電路中斷連接的連接器,廣泛應用于電子測試設備和通信系統
    的頭像 發表于 10-09 08:06 ?635次閱讀
    <b class='flag-5'>斷</b>連塊應用于飛控測試環境斷線測試箱

    國產端聯塊-連塊應用于飛控測試環境斷線測試箱

    連塊概述 連塊作為種用于電路中斷連接的連接器,廣泛應用于電子測試設備和通信系統。它能夠在特定條件下,通過手動插拔精準地
    的頭像 發表于 10-08 15:07 ?569次閱讀

    stm32怎樣觸發軟件中斷

    了解STM32中斷系統 STM32微控制器具有豐富的中斷系統,包括NVIC(嵌套向量中斷控制器)和SYSTICK定時器。NVIC可以處理多達
    的頭像 發表于 09-02 09:32 ?1624次閱讀

    相與相序保護繼電器的選型原則

    是指在電動機運行過程,當某相的電源突然中斷時,能夠迅速切斷電動機電源,以防止電動機因缺相運行而損壞。相保護的基本原理是利用電動機的三相電流不平衡來實現保護動作。 當電動機正常運行
    的頭像 發表于 08-02 14:36 ?1646次閱讀

    求助,請問ESP32S2外設SPI2中斷中斷函數怎么配置?

    請問ESP32S2外設SPI2中斷中斷函數怎么配置?有例程嗎?
    發表于 06-28 06:37