STM32 事件和中断的区别
STM32 事件和中断的区别
好的,我们来详细解释一下 STM32 微控制器中 事件(Event) 和 中断(Interrupt) 的区别:
它们都是 STM32 响应外部信号(如 GPIO 引脚电平变化、定时器溢出、ADC 转换完成等)的机制,但目的、处理方式和资源消耗上有根本的不同:
-
目的与触发对象不同:
- 中断: 目的是通知 CPU 发生了某个特定的情况,需要 CPU 立即(或在优先级允许的情况下)暂停当前正在执行的任务,转而去执行一段特定的代码(中断服务程序 - ISR)来处理这个情况。中断的核心目标是 CPU 的软件响应。
- 事件: 目的是触发一个硬件外设的动作,或者在硬件层面连接两个外设的信号流。它不要求 CPU 介入。事件的核心目标是 硬件外设之间的自动联动 或 触发 DMA 传输。
-
处理路径不同 (核心区别):
- 中断路径:
信号源->中断控制器->CPU->读取挂起位->执行 ISR (软件)->清除挂起位- CPU 必须介入: 当信号到达中断控制器(如 NVIC)并被置位挂起标志后,如果中断优先级足够高且未被屏蔽,CPU 会暂停当前任务,保存现场(压栈),跳转到对应的 ISR 执行代码(用户编写的处理逻辑),执行完毕后清除中断挂起标志,恢复现场(出栈),再继续执行被中断的任务。这个过程需要 CPU 参与,消耗 CPU 时间和资源(入栈/出栈、执行指令)。
- 事件路径:
信号源->事件控制器->目标外设(或DMA 控制器)- CPU 不介入: 信号到达事件控制器(如 EXTI)后,会被直接路由到一个或多个预先配置好的目标外设(如 TIM、ADC、DAC)的触发输入通道,或者触发 DMA 请求。这个路由和触发动作完全在硬件层面自动完成,不需要 CPU 执行任何指令。事件信号就像一个硬件“拉绳”,直接启动另一个硬件模块的动作。
- 中断路径:
-
资源消耗不同:
- 中断: 消耗 CPU 资源。执行 ISR 需要 CPU 时钟周期、占用总线周期进行入栈/出栈操作。频繁的中断会显著降低 CPU 执行主线任务的效率。
- 事件: 几乎不消耗 CPU 资源。事件触发硬件动作是纯硬件行为,发生在 CPU 之外。CPU 可以继续执行其他任务,或者进入低功耗模式(睡眠、停机),而事件触发的外设操作(如 DMA 传输、定时器启动)仍然可以继续进行。这是事件的一大优势,尤其是在低功耗和实时性要求高的场景。
-
响应速度不同:
- 中断: 响应速度相对较慢(微秒级别)。需要等待 CPU 中断响应延迟(查找向量表,保存上下文),然后在 ISR 中执行指令。
- 事件: 响应速度极快(纳秒级别)。信号直接从源头路由到目标外设触发硬件动作,没有软件延迟。这对于需要严格时序的操作(如 PWM 同步、精确 ADC 触发)至关重要。
-
配置与管理:
- 中断:
- 需要使能信号源的中断功能(如 EXTI_IMR 寄存器)。
- 必须在 NVIC 中配置中断优先级和使能。
- 必须编写中断服务程序。
- 通常需要在 ISR 中清除中断挂起标志。
- 事件:
- 需要使能信号源的事件功能(如 EXTI_EMR 寄存器)。
- 不需要配置 NVIC!(因为不触发 CPU 中断)。
- 不需要编写 ISR!(因为 CPU 不参与)。
- 需要配置目标外设(如 TIM、ADC、DAC)使用相应的触发源(例如,配置 ADC 的启动触发源为 EXTI 线)。
- 通常不需要手动清除事件标志(取决于具体外设,有些会自动清零)。
- 中断:
总结表格:
| 特性 | 中断 | 事件 |
|---|---|---|
| 核心目的 | 通知 CPU,请求软件处理 | 触发 硬件外设 动作或 DMA 传输 |
| 处理主体 | CPU (执行 ISR) | 目标外设/DMA (纯硬件操作) |
| 是否需 CPU | 必须 | 不需要 |
| 资源消耗 | 高 (消耗 CPU 时间、总线周期) | 极低 (几乎不占用 CPU) |
| 响应速度 | 较慢 (微秒级,软件延迟) | 极快 (纳秒级,硬件直接连接) |
| 配置要点 | 1. 使能信号源中断 2. NVIC 配置 (优先级, 使能) 3. 编写 ISR 4. ISR 中清除挂起标志 |
1. 使能信号源事件 2. 无需 NVIC 配置 3. 无需编写 ISR 4. 配置目标外设使用该事件作为触发源 5. (可选)清除事件标志 |
| 典型应用 | 需要复杂逻辑处理 ( - 读取传感器数据并计算 - 处理通信数据包 - 响应按键执行任务) |
需要硬件自动联动或低功耗 ( - ADC 由定时器/外部引脚精确触发采样 - 定时器同步/门控 - 外部信号启动 DAC 输出 - 事件触发 DMA 传输 (CPU 睡眠) - 硬件级联控制) |
简单比喻:
- 中断 就像家里的门铃响了(信号源)。门铃控制器(中断控制器)通知正在做饭的你(CPU)。你(CPU)需要停下来,放下锅铲(保存现场),走到门口(执行 ISR),看看是谁(处理事件),可能开门或不开门(处理逻辑),然后回到厨房继续做饭(恢复现场)。
- 事件 就像按下了电热水壶的开关(信号源)。开关按下去(事件发生)直接接通了加热丝的电路(目标外设)。水开始加热(硬件动作)。这个过程完全自动,不需要你(CPU)放下手头的事情去操作。你(CPU)可以继续看书或者睡觉(低功耗)。
如何选择?
- 当你需要 CPU 执行复杂的逻辑处理、读取数据、做决策 时,使用 中断。
- 当你需要在 硬件层面自动触发另一个外设的操作(定时器启动/停止/复位、ADC/DAC 转换)、精确同步多个外设、或者在不唤醒 CPU 的情况下触发 DMA 传输(实现超低功耗) 时,优先使用 事件 。
在许多实际应用中,中断和事件可以配合使用(例如,事件触发 DMA 传输数据块,DMA 传输完成再触发中断通知 CPU 数据处理就绪)。理解它们的区别对于设计高效、低功耗、实时性强的 STM32 应用至关重要。
stm32中断怎么处理的
STM32是一款非常强大的微控制器系列,具有丰富的外设和功能。中断是STM32中非常重要的部分,能够帮助我们提高系统的响应速度和效率。本文将详细
2024-01-02 17:35:10
STM32中断与事件的区别资料下载
电子发烧友网为你提供STM32中断与事件的区别资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户
资料下载
佚名
2021-04-23 08:54:21
STM32按键扫描/按键中断/外部中断资料下载
电子发烧友网为你提供STM32按键扫描/按键中断/外部中断资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参
资料下载
佚名
2021-04-13 08:45:07
STM32的中断机制 stm32中断方式有几种
中断机制在单片机中是很重要的环节,中断代码默认地从上往下执行,遇到特定条件或特定语句,将按照指定的程序跳转。而STM32单片机的
2021-07-22 16:38:16
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 如何进行编码器的正确接线?接线方法介绍
- 什么是场效应管?它的作用是什么?
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- amoled屏幕和oled区别
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机