420 字
2 分钟
STM32 中断简单介绍

中断系统#

中断概念#

主程序运行时触发特定的中断条件后,使CPU暂停并保存任务,转而处理中断函数

中断优先级#

中断有轻重缓急,CPU会根据中断优先级,优先相应更加重要的中断源

中断嵌套#

当进入中断时,更高优先级中断触发,那么将会暂停当前中断程序,执行高优先级中断

中断数量#

68个可屏蔽中断通道包含EXTI、TIM、ADC、USART、SPI、IIC、RTC等外设

由NVIC统一管理,每个中断有16个可编程优先等级,可以设置抢占优先级和响应优先级

所有中断参考 STM32F10xxx参考手册(中文).pdf P130 9.1.2 中断和异常向量

NVIC 嵌套向量中断控制器#

Cortex-M3权威指南.pdf P26 2.4 内建的嵌套向量中断控制器

NVIC提供以下功能#

  • 可嵌套中断支持
  • 向量中断支持
  • 动态优先级调整支持
  • 中断延迟大大缩短
  • 中断可屏蔽

NVIC的优先级分组#

中断一般不遵从先来后到的方式,一直都是优先级高的先响应

中断优先级有优先级的4位0-15决定,对这四位进行拆分可以分为高那位设置抢占优先级,低4-n位设置响应优先级AIRCR中断分组设置表

分组方式AIRCR[10:8]IP bit[7:4]分配情况(抢占优先级:响应优先级)
01110:4
11101:3
21012:2
31003:1
40114:0

抢占优先级与响应优先级#

抢占优先级高可以中断嵌套,而响应优先级高可以优先响应,均相同按中断号排队(先到先得)

STM32 中断简单介绍
https://kozakemi.top/posts/stm32-中断简单介绍/
作者
Kozakemi
发布于
2023-09-19
许可协议
CC BY-NC-SA 4.0