資料介紹
前言:
1.要想學習STM32中斷,要先掌握STM32對優先級的定義;
2.有51單片機開發經驗會比較容易理解中斷優先級;
3.本篇博文基于STM32F103ZET6芯片和3.5.0標準庫編寫;
4.本篇博文從寄存器入手,最終實現編程的步驟;如有不足之處,還請前輩多多指教;
一 基礎知識
1. cortex-m3支持256個中斷,其中包含了16個內核中斷,240個外部中斷。(本博文只介紹60個外部可屏蔽中斷)
2. stm32只有84個中斷,包括16個內核中斷和68個可屏蔽中斷
3. stm32f103上只有60個可屏蔽中斷,f107上才有68個中斷
4.先占優先級也就是搶占優先級,概念等同于51單片機中的中斷。假設有兩中斷先后觸發,已經在執行的中斷先占優先級如果沒有后觸發的中斷 先占優先級更高,就會先處理先占優先級高的中斷。也就是說又有較高的先占優先級的中斷可以打斷先占優先級較低的中斷。這是實現中斷嵌套的基礎。
次占優先級,也就是響應優先級,只在同一先占優先級的中斷同時觸發時起作用,先占優先級相同,則優先執行次占優先級較高的中斷。次占優先級不會造成中斷嵌套。 如果中斷的兩個優先級都一致,則優先執行位于中斷向量表中位置較高的中斷。
NVIC是什么?
嵌套向量中斷控制器;用于為中斷分組,從而分配搶占優先級和響應優先級;
分組的方式有兩種:
(1)Cortex-m3內核提供了一種3位寬度的PRIGROUP數據區,用于指示一個8位數據序列中的小數點的位置,從而表示中斷優先級的分組。見下表:
(2)而實際上STM32并沒有用到這么多中斷,所以在分組上只分了5個組,并且表示方法有所不同;見下表:
我們在應用當中只會用到STM32的分組(5組)方式,所以下面著重于5組分組方式;
二 中斷向量表 (STM32F10x系列)
(圖片來自STM32使用手冊,只需看,不需要熟記,知道大概這么多中斷就好)
三 配置中斷相關寄存器
/*
cortex-m3內核分組方式(8組)結構體表達方式:
*/
typedef struct
{
__IO uint32_t ISER[8];? ? ? ? ? 中斷使能設置寄存器/*!< 偏移量: 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];? ? ? ? ? ? 中斷掛起設置寄存器/*!< 偏移量: 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];? ? ? ? ? ? ?中斷激活狀態位寄存器/*!< 偏移量: 0x200? Interrupt Active bit Register*/
uint32_t RESERVED4[56];
__IO uint8_t? IP[240];? ? ? ? ? ? 中斷優先級寄存器/*!<偏移量: 0x300? Interrupt Priority Register (8Bit wide)*/
uint32_t RESERVED5[644];? ? ? ? 軟件觸發方式寄存器
__O? uint32_t STIR;? ? ? ? ? ? ? ? ? ? ? ? ?/*!< 偏移量: 0xE00? Software Trigger Interrupt Register? ? */
}? NVIC_Type;
/*
STM32分組(5組)方式結構體表達方式
typedef struct
{
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- STM32學習---中斷EXTI(按鍵中斷)
- stm32的NVIC中斷
- STM32NVIC中斷優先級
- 基于STM32單片機模塊練習——中斷總結
- STM32學習筆記(五)---NVIC
- STM32學習筆記---NVIC/EXIT中斷
- 2021-04-16 NVIC中斷優先級管理
- 【STM32H7教程】第21章 STM32H7的NVIC中斷分組和配置(重要)
- 基于STM32L4的NVIC中斷系統
- STM32按鍵掃描/按鍵中斷/外部中斷資料下載
- Cortex-M3 NVIC與中斷控制資料下載
- STM32單片機中斷及NVIC的詳細資料概述
- STM32中的NVIC資料 9次下載
- STM32中斷與嵌套NVIC快速入門 20次下載
- STM32中斷與嵌套快速入門(NVIC) 41次下載
- 【GD32 MCU 入門教程】GD32 MCU 常見外設介紹(3)NVIC 介紹 568次閱讀
- 不會RTOS,是因為你沒搞懂NVIC 1156次閱讀
- stm32中斷怎么處理的 2664次閱讀
- 單片機的NVIC與EXTI中斷詳解 5734次閱讀
- STM32中斷系統的工作流程 2669次閱讀
- STM32的外部中斷 2661次閱讀
- CKS32F4xx系列產品NVIC中斷優先級管理單元講解 1220次閱讀
- stm32定時器中斷與誤區 2.7w次閱讀
- STM32中斷過程詳解 1.9w次閱讀
- 51單片機NVIC中斷控制設計 1838次閱讀
- 如何用STM32配置一個EXTIx中斷線的I/O口 3735次閱讀
- STM32的Cortex-M3中斷異常處理 8313次閱讀
- STM32GPIO外部中斷的詳細解析和總結 7w次閱讀
- stm32定時器中斷程序 1.3w次閱讀
- 《振南電子STM32視頻教程》第六講:EXTI和NVIC的配置和使用 987次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多