单片机中的中断

中断为什么要有分组

中断优先级分组的主要原因是‌多任务处理的需要‌。当多个中断源同时发出请求时,CPU需按优先级顺序响应,避免系统资源竞争和任务阻塞。 ‌12

分组依据

中断优先级通常根据以下特性划分:

  • ‌紧迫性‌:如硬件故障需立即处理,避免系统崩溃;
  • ‌关键性‌:关键任务(如实时数据采集)优先级高于非关键任务;
  • ‌频繁性‌:高频事件需优先处理以减少延迟;
  • ‌处理复杂度‌:简单中断优先处理,避免复杂中断嵌套导致延迟。 ‌45

分组作用

  • ‌有序处理‌:通过优先级分组,CPU可快速响应高优先级中断,低优先级中断则按顺序等待;
  • ‌资源保护‌:避免高优先级任务被低优先级任务长时间占用,保障系统稳定性。 ‌24

例如在STM32中,NVIC(嵌套向量中断控制器)支持抢占优先级和响应优先级的组合管理,高抢占优先级可打断低优先级中断,相同优先级则按响应顺序执行。 ‌

抢占优先级和响应优先级

STM32 的中断向量具有两个属性,一个为抢占属性,另一个为响应属性,其属性编号越小,表明它的优先级别越高。

抢占

抢占,是指打断其他中断的属性,即因为具有这个属性会出现嵌套中断(在执行中断服务函数A 的过程中被中断B 打断,执行完中断服务函数B 再继续执行中断服务函数A),抢占属性由NVIC_IRQChannelPreemptionPriority 的参数配置。

响应

响应属性则应用在抢占属性相同的情况下,当两个中断向量的抢占优先级相同时,如果两个中断同时到达, 则先处理响应优先级高的中断, 响应属性由NVIC_IRQChannelSubPriority 参数配置。

优先级必须配置吗?

在STM32中,中断优先级配置并非必须,但合理配置能显著提升系统性能和稳定性。默认优先级(通常为0)可能无法满足复杂应用需求。 ‌12

默认优先级的表现

STM32中断默认优先级为0(数值越大优先级越低),且未配置时所有中断处于同一优先级。这种情况下,系统可能面临以下问题:

  1. ‌响应延迟‌:高优先级中断无法优先处理,导致实时性下降(如温度传感器等关键任务延迟)。
  2. ‌中断嵌套限制‌:相同优先级的中断嵌套时,后到达的中断需等待前一个中断完成,可能引发死锁(如两个中断互相等待对方释放资源)。 ‌23
优先级配置的必要性

通过合理分配抢占优先级和响应优先级,可解决上述问题:

  1. ‌提升响应速度‌:高优先级中断可打断低优先级中断处理,例如按键响应需优先于数据传输任务。
  2. ‌避免死锁‌:通过优先级分组避免资源竞争,例如串口通信与定时器中断互不干扰。 ‌34
  3. ‌优化资源分配‌:根据任务紧急程度动态调整优先级,例如紧急报警优先于常规设备控制。 ‌23
配置建议

建议根据实际需求调整:

  1. ‌抢占优先级‌:决定中断是否可嵌套(高抢占优先级可打断低优先级中断)。
  2. ‌响应优先级‌:在相同抢占优先级时决定处理顺序。
  3. ‌分组机制‌:通过NVIC配置(如分组0~7),全局生效但可多次修改。
相关推荐
szxinmai主板定制专家11 分钟前
AMR 项目落地:机器人控制器硬件定制化需求复盘
arm开发·单片机·fpga开发·系统架构·机器人·am62x
笨笨饿11 分钟前
#60_# 一、Photoshop 2025 如何批量导出 PSD 文件中的所有图层为独立 PNG 图片
stm32·单片机·嵌入式硬件·物联网·ui·51单片机·photoshop
碧海银沙音频科技研究院10 小时前
基于炬芯ATS308X 设计的上位机usb 串口音乐EQ调节工具
stm32·单片机·嵌入式硬件
三佛科技-1341638421213 小时前
过认证72W碳化硅方案(12V6A)主控HN1562+HN36228V 典型应用电路、变压器参数分享
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
Zwawa14 小时前
串口为什么会丢字节:从轮询到中断和环形缓冲区
c语言·单片机·嵌入式
Brilliantwxx14 小时前
【STM32】 内部 Flash 详解:寄存器逐位拆解 + 工作流程顺序全讲 + EEPROM再实现
stm32·单片机·嵌入式硬件·1024程序员节
木子单片机14 小时前
基于单片机的DS18B20温度传感器测温系统设计
单片机·嵌入式硬件·51单片机·keil
华清远见IT开放实验室15 小时前
实验室建设案例 | 安徽三联学院物联网实验室
stm32·单片机·嵌入式硬件·物联网·华清远见
深圳光特通信豆子16 小时前
TTL 光模块在工业控制与串口通信中的应用指南(10M BIDI 单模系列)
单片机·嵌入式硬件
桀人16 小时前
SPI概念引入
stm32·单片机·嵌入式硬件