登录/注册

STM32 事件和中断的区别

STM32 事件和中断的区别

更多

好的,我们来详细解释一下 STM32 微控制器中 事件(Event)中断(Interrupt) 的区别:

它们都是 STM32 响应外部信号(如 GPIO 引脚电平变化、定时器溢出、ADC 转换完成等)的机制,但目的、处理方式和资源消耗上有根本的不同:

  1. 目的与触发对象不同:

    • 中断: 目的是通知 CPU 发生了某个特定的情况,需要 CPU 立即(或在优先级允许的情况下)暂停当前正在执行的任务,转而去执行一段特定的代码(中断服务程序 - ISR)来处理这个情况。中断的核心目标是 CPU 的软件响应
    • 事件: 目的是触发一个硬件外设的动作,或者在硬件层面连接两个外设的信号流。它不要求 CPU 介入。事件的核心目标是 硬件外设之间的自动联动触发 DMA 传输
  2. 处理路径不同 (核心区别):

    • 中断路径: 信号源 -> 中断控制器 -> CPU -> 读取挂起位 -> 执行 ISR (软件) -> 清除挂起位
      • CPU 必须介入: 当信号到达中断控制器(如 NVIC)并被置位挂起标志后,如果中断优先级足够高且未被屏蔽,CPU 会暂停当前任务,保存现场(压栈),跳转到对应的 ISR 执行代码(用户编写的处理逻辑),执行完毕后清除中断挂起标志,恢复现场(出栈),再继续执行被中断的任务。这个过程需要 CPU 参与,消耗 CPU 时间和资源(入栈/出栈、执行指令)。
    • 事件路径: 信号源 -> 事件控制器 -> 目标外设 (或 DMA 控制器)
      • CPU 不介入: 信号到达事件控制器(如 EXTI)后,会被直接路由到一个或多个预先配置好的目标外设(如 TIM、ADC、DAC)的触发输入通道,或者触发 DMA 请求。这个路由和触发动作完全在硬件层面自动完成,不需要 CPU 执行任何指令。事件信号就像一个硬件“拉绳”,直接启动另一个硬件模块的动作。
  3. 资源消耗不同:

    • 中断: 消耗 CPU 资源。执行 ISR 需要 CPU 时钟周期、占用总线周期进行入栈/出栈操作。频繁的中断会显著降低 CPU 执行主线任务的效率。
    • 事件: 几乎不消耗 CPU 资源。事件触发硬件动作是纯硬件行为,发生在 CPU 之外。CPU 可以继续执行其他任务,或者进入低功耗模式(睡眠、停机),而事件触发的外设操作(如 DMA 传输、定时器启动)仍然可以继续进行。这是事件的一大优势,尤其是在低功耗和实时性要求高的场景。
  4. 响应速度不同:

    • 中断: 响应速度相对较慢(微秒级别)。需要等待 CPU 中断响应延迟(查找向量表,保存上下文),然后在 ISR 中执行指令。
    • 事件: 响应速度极快(纳秒级别)。信号直接从源头路由到目标外设触发硬件动作,没有软件延迟。这对于需要严格时序的操作(如 PWM 同步、精确 ADC 触发)至关重要。
  5. 配置与管理:

    • 中断:
      • 需要使能信号源的中断功能(如 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 睡眠)
- 硬件级联控制)

简单比喻:

如何选择?

在许多实际应用中,中断和事件可以配合使用(例如,事件触发 DMA 传输数据块,DMA 传输完成再触发中断通知 CPU 数据处理就绪)。理解它们的区别对于设计高效、低功耗、实时性强的 STM32 应用至关重要。

stm32中断怎么处理的

STM32是一款非常强大的微控制器系列,具有丰富的外设和功能。中断是STM32中非常重要的部分,能够帮助我们提高系统的响应速度和效率。本文将详细

2024-01-02 17:35:10

STM32如何配置外部中断STM32外部中断配置步骤

STM32如何配置外部中断?STM32外部中断配置步骤  作为一款现代化

2023-10-26 17:47:25

STM32学习笔记一外部中断

STM32 的每个 IO 都可以作为外部中断的中断输入口。STM32F1

2023-10-24 14:12:42

STM32 外部中断实验参考程序

STM32 外部中断实验程序,供STM32初学者参考。

资料下载 郑兵 2021-12-30 10:46:50

STM32(六)-------中断(外部中断

STM32中断应用中断知识介绍STM32

资料下载 王秀兰 2021-12-04 17:21:05

STM32公用中断源时的中断分配

以STM32l0xx为例多外部中断共用中断源时,要通过判断中断请求状态来

资料下载 佚名 2021-11-24 16:51:10

STM32中断与事件的区别资料下载

电子发烧友网为你提供STM32中断与事件的区别资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户

资料下载 佚名 2021-04-23 08:54:21

STM32按键扫描/按键中断/外部中断资料下载

电子发烧友网为你提供STM32按键扫描/按键中断/外部中断资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参

资料下载 佚名 2021-04-13 08:45:07

STM32外部中断与事件的区别是什么?

STM32外部中断与事件的区别是什么?

2022-02-07 08:58:13

STM32中断机制 stm32中断方式有几种

中断机制在单片机中是很重要的环节,中断代码默认地从上往下执行,遇到特定条件或特定语句,将按照指定的程序跳转。而STM32单片机的

2021-07-22 16:38:16

STM32关全局中断的方法 STM32中断类型

STM32中断很强大,STM32中断可以嵌套,任何外设都可以产生

2021-07-22 10:52:54

stm32事件和中断区别

stm32事件和中断的区别,在使用STM32系列单片机的时候,经常要使用

2021-07-14 08:02:44

STM32_ EXIT中断

STM32_EXIT中断

2020-04-08 11:12:48

STM32_TIM定时- 中断

STM32_TIM定时-中断

2020-04-08 09:49:44

STM32中断及FreeRTOS中断优先级配置

STM32中断,及FreeRTOS中断优先级配置

2020-03-04 11:45:36

7天热门专题 换一换
相关标签