資料介紹
前言:
1.要想學(xué)習(xí)STM32中斷,要先掌握STM32對(duì)優(yōu)先級(jí)的定義;
2.有51單片機(jī)開(kāi)發(fā)經(jīng)驗(yàn)會(huì)比較容易理解中斷優(yōu)先級(jí);
3.本篇博文基于STM32F103ZET6芯片和3.5.0標(biāo)準(zhǔn)庫(kù)編寫(xiě);
4.本篇博文從寄存器入手,最終實(shí)現(xiàn)編程的步驟;如有不足之處,還請(qǐng)前輩多多指教;
一 基礎(chǔ)知識(shí)
1. cortex-m3支持256個(gè)中斷,其中包含了16個(gè)內(nèi)核中斷,240個(gè)外部中斷。(本博文只介紹60個(gè)外部可屏蔽中斷)
2. stm32只有84個(gè)中斷,包括16個(gè)內(nèi)核中斷和68個(gè)可屏蔽中斷
3. stm32f103上只有60個(gè)可屏蔽中斷,f107上才有68個(gè)中斷
4.先占優(yōu)先級(jí)也就是搶占優(yōu)先級(jí),概念等同于51單片機(jī)中的中斷。假設(shè)有兩中斷先后觸發(fā),已經(jīng)在執(zhí)行的中斷先占優(yōu)先級(jí)如果沒(méi)有后觸發(fā)的中斷 先占優(yōu)先級(jí)更高,就會(huì)先處理先占優(yōu)先級(jí)高的中斷。也就是說(shuō)又有較高的先占優(yōu)先級(jí)的中斷可以打斷先占優(yōu)先級(jí)較低的中斷。這是實(shí)現(xiàn)中斷嵌套的基礎(chǔ)。
次占優(yōu)先級(jí),也就是響應(yīng)優(yōu)先級(jí),只在同一先占優(yōu)先級(jí)的中斷同時(shí)觸發(fā)時(shí)起作用,先占優(yōu)先級(jí)相同,則優(yōu)先執(zhí)行次占優(yōu)先級(jí)較高的中斷。次占優(yōu)先級(jí)不會(huì)造成中斷嵌套。 如果中斷的兩個(gè)優(yōu)先級(jí)都一致,則優(yōu)先執(zhí)行位于中斷向量表中位置較高的中斷。
NVIC是什么?
嵌套向量中斷控制器;用于為中斷分組,從而分配搶占優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí);
分組的方式有兩種:
(1)Cortex-m3內(nèi)核提供了一種3位寬度的PRIGROUP數(shù)據(jù)區(qū),用于指示一個(gè)8位數(shù)據(jù)序列中的小數(shù)點(diǎn)的位置,從而表示中斷優(yōu)先級(jí)的分組。見(jiàn)下表:
(2)而實(shí)際上STM32并沒(méi)有用到這么多中斷,所以在分組上只分了5個(gè)組,并且表示方法有所不同;見(jiàn)下表:
我們?cè)趹?yīng)用當(dāng)中只會(huì)用到STM32的分組(5組)方式,所以下面著重于5組分組方式;
二 中斷向量表 (STM32F10x系列)
(圖片來(lái)自STM32使用手冊(cè),只需看,不需要熟記,知道大概這么多中斷就好)
三 配置中斷相關(guān)寄存器
/*
cortex-m3內(nèi)核分組方式(8組)結(jié)構(gòu)體表達(dá)方式:
*/
typedef struct
{
__IO uint32_t ISER[8];? ? ? ? ? 中斷使能設(shè)置寄存器/*!< 偏移量: 0x000? Interrupt Set Enable Register*/
uint32_t RESERVED0[24];
__IO uint32_t ICER[8];? ? ? ? ? ?中斷清除使能寄存器/*!<偏移量: 0x080? Interrupt Clear Enable Register */
uint32_t RSERVED1[24];
__IO uint32_t ISPR[8];? ? ? ? ? ? 中斷掛起設(shè)置寄存器/*!< 偏移量: 0x100? Interrupt Set Pending Register */
uint32_t RESERVED2[24];
__IO uint32_t ICPR[8];? ? ? ? ? ? 中斷清除掛起寄存器/*!<偏移量: 0x180? Interrupt Clear Pending Register */
uint32_t RESERVED3[24];
__IO uint32_t IABR[8];? ? ? ? ? ? ?中斷激活狀態(tài)位寄存器/*!< 偏移量: 0x200? Interrupt Active bit Register*/
uint32_t RESERVED4[56];
__IO uint8_t? IP[240];? ? ? ? ? ? 中斷優(yōu)先級(jí)寄存器/*!<偏移量: 0x300? Interrupt Priority Register (8Bit wide)*/
uint32_t RESERVED5[644];? ? ? ? 軟件觸發(fā)方式寄存器
__O? uint32_t STIR;? ? ? ? ? ? ? ? ? ? ? ? ?/*!< 偏移量: 0xE00? Software Trigger Interrupt Register? ? */
}? NVIC_Type;
/*
STM32分組(5組)方式結(jié)構(gòu)體表達(dá)方式
typedef struct
{
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- STM32學(xué)習(xí)---中斷EXTI(按鍵中斷)
- stm32的NVIC中斷
- STM32NVIC中斷優(yōu)先級(jí)
- 基于STM32單片機(jī)模塊練習(xí)——中斷總結(jié)
- STM32學(xué)習(xí)筆記(五)---NVIC
- STM32學(xué)習(xí)筆記---NVIC/EXIT中斷
- 2021-04-16 NVIC中斷優(yōu)先級(jí)管理
- 【STM32H7教程】第21章 STM32H7的NVIC中斷分組和配置(重要)
- 基于STM32L4的NVIC中斷系統(tǒng)
- STM32按鍵掃描/按鍵中斷/外部中斷資料下載
- Cortex-M3 NVIC與中斷控制資料下載
- STM32單片機(jī)中斷及NVIC的詳細(xì)資料概述
- STM32中的NVIC資料 9次下載
- STM32中斷與嵌套NVIC快速入門(mén) 20次下載
- STM32中斷與嵌套快速入門(mén)(NVIC) 41次下載
- 【GD32 MCU 入門(mén)教程】GD32 MCU 常見(jiàn)外設(shè)介紹(3)NVIC 介紹 568次閱讀
- 不會(huì)RTOS,是因?yàn)槟銢](méi)搞懂NVIC 1156次閱讀
- stm32中斷怎么處理的 2664次閱讀
- 單片機(jī)的NVIC與EXTI中斷詳解 5734次閱讀
- STM32中斷系統(tǒng)的工作流程 2669次閱讀
- STM32的外部中斷 2661次閱讀
- CKS32F4xx系列產(chǎn)品NVIC中斷優(yōu)先級(jí)管理單元講解 1220次閱讀
- stm32定時(shí)器中斷與誤區(qū) 2.7w次閱讀
- STM32中斷過(guò)程詳解 1.9w次閱讀
- 51單片機(jī)NVIC中斷控制設(shè)計(jì) 1838次閱讀
- 如何用STM32配置一個(gè)EXTIx中斷線的I/O口 3735次閱讀
- STM32的Cortex-M3中斷異常處理 8313次閱讀
- STM32GPIO外部中斷的詳細(xì)解析和總結(jié) 7w次閱讀
- stm32定時(shí)器中斷程序 1.3w次閱讀
- 《振南電子STM32視頻教程》第六講:EXTI和NVIC的配置和使用 987次閱讀
下載排行
本周
- 1PC3103 低功耗電流模式PWM控制器技術(shù)手冊(cè)
- 1.23 MB | 3次下載 | 免費(fèi)
- 2L7805CV TO-220三端穩(wěn)壓IC規(guī)格書(shū)
- 0.71 MB | 1次下載 | 免費(fèi)
- 3LoRa2021 全頻段無(wú)線通訊模塊規(guī)格書(shū)
- 814.22 KB | 1次下載 | 免費(fèi)
- 4L7812CV TO-220三端穩(wěn)壓IC規(guī)格書(shū)
- 1.35 MB | 次下載 | 免費(fèi)
- 5L7815CV TO-220三端穩(wěn)壓IC規(guī)格書(shū)
- 1.48 MB | 次下載 | 免費(fèi)
- 6N-12電子傾斜儀指南
- 0.24 MB | 次下載 | 10 積分
- 7基于CP500S掃描測(cè)頭的三坐標(biāo)測(cè)量系統(tǒng):復(fù)雜曲面零件解決方案
- 0.35 MB | 次下載 | 免費(fèi)
- 8STM32H747xI/G 英文數(shù)據(jù)手冊(cè)
- 5.09 MB | 次下載 | 免費(fèi)
本月
- 1PFC電路與BOOST電路設(shè)計(jì)實(shí)例分享
- 1.83 MB | 18次下載 | 4 積分
- 2電源測(cè)試報(bào)告-基于 國(guó)民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
- 6.47 MB | 17次下載 | 免費(fèi)
- 3世平基于靈動(dòng)微 SPIN560C 的低壓無(wú)刷電機(jī)應(yīng)用方案
- 10.93 MB | 11次下載 | 免費(fèi)
- 4900MHz全雙工無(wú)線發(fā)射器參考設(shè)計(jì)原理圖資料
- 0.40 MB | 6次下載 | 免費(fèi)
- 5PWM控制器的控制方法
- 0.39 MB | 3次下載 | 4 積分
- 6900MHz全雙工無(wú)線發(fā)射器參考設(shè)計(jì)
- 0.15 MB | 3次下載 | 1 積分
- 7美的電磁爐TM-S1-20B PN8124F+CHK S009資料圖
- 0.28 MB | 3次下載 | 10 積分
- 8FS313B USB 的 PD和QC 快充協(xié)議電壓誘騙控制器規(guī)格書(shū)
- 2.61 MB | 3次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935134次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191424次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183352次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73819次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App






創(chuàng)作
發(fā)文章
發(fā)帖
提問(wèn)
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論