news 2026/5/15 18:56:59

STM32_EXTI

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
STM32_EXTI
简介

EXTI(External Interrupt/Event Controller,外部中断/事件控制器)是 STM32 单片机中用于管理外部中断和事件的外设,可检测外部信号的变化并触发中断或事件。STM32F407 系列芯片配备了 23 个外部中断/事件线,支持上升沿、下降沿、双边沿触发,可与 GPIO 引脚、外设事件等连接,广泛应用于按键检测、传感器触发、外部信号处理等场景。本文从 EXTI 的基本原理出发,详细讲解 STM32F407 EXTI 的配置方法、代码实现、中断处理以及实际应用案例,帮助你快速掌握 EXTI 的使用技巧。

一、EXTI核心概念与分类
1.1 基本概念

EXTI 是一个用于管理外部中断和事件的控制器,其主要特点包括:

  • 多路中断源:支持多达 23 个外部中断/事件线
  • 多种触发方式:上升沿、下降沿、双边沿触发
  • 灵活配置:每个中断线可独立配置触发方式和优先级
  • 中断和事件:支持中断和事件两种处理方式
  • 软件触发:支持软件触发中断/事件

关键参数

  • 中断线:EXTI0-EXTI22,共 23 个中断线
  • 触发方式:上升沿、下降沿、双边沿
  • 中断优先级:可配置抢占优先级和子优先级
  • 中断屏蔽:可单独屏蔽每个中断线
1.2 STM32F407 的 EXTI 资源

STM32F407 系列芯片配备了 23 个外部中断/事件线:

中断线功能触发源
EXTI0外部中断线0PA0-PG0
EXTI1外部中断线1PA1-PG1
EXTI2外部中断线2PA2-PG2
EXTI3外部中断线3PA3-PG3
EXTI4外部中断线4PA4-PG4
EXTI5外部中断线5PA5-PG5
EXTI6外部中断线6PA6-PG6
EXTI7外部中断线7PA7-PG7
EXTI8外部中断线8PA8-PG8
EXTI9外部中断线9PA9-PG9
EXTI10外部中断线10PA10-PG10
EXTI11外部中断线11PA11-PG11
EXTI12外部中断线12PA12-PG12
EXTI13外部中断线13PA13-PG13
EXTI14外部中断线14PA14-PG14
EXTI15外部中断线15PA15-PG15
EXTI16外部中断线16PVD输出
EXTI17外部中断线17RTC闹钟
EXTI18外部中断线18USB OTG FS唤醒
EXTI19外部中断线19以太网唤醒
EXTI20外部中断线20USB OTG HS唤醒
EXTI21外部中断线21RTC入侵和时间戳
EXTI22外部中断线22RTC闹钟

关键特性

  • 支持上升沿、下降沿、双边沿触发
  • 支持中断和事件两种处理方式
  • 支持软件触发中断/事件
  • 支持中断屏蔽和事件屏蔽
  • 支持挂起寄存器,记录中断状态
二、EXTI工作原理
2.1 基本工作原理

EXTI 的基本工作原理是检测外部信号的变化,并根据配置触发中断或事件。

工作流程

  1. 外部信号通过 GPIO 引脚或外设事件输入到 EXTI
  2. EXTI 检测信号的变化(上升沿、下降沿、双边沿)
  3. 如果检测到触发条件,EXTI 生成中断请求或事件
  4. 中断请求发送到 NVIC,由 NVIC 决定是否响应中断
  5. CPU 响应中断,执行中断服务函数
2.2 触发方式

EXTI 支持三种触发方式:

上升沿触发

  • 当信号从低电平变为高电平时触发中断
  • 适用于检测按键释放、传感器上升沿等场景

下降沿触发

  • 当信号从高电平变为低电平时触发中断
  • 适用于检测按键按下、传感器下降沿等场景

双边沿触发

  • 当信号从低电平变为高电平或从高电平变为低电平时都触发中断
  • 适用于检测信号变化、编码器等场景
2.3 中断和事件

EXTI 支持两种处理方式:

中断

  • 中断请求发送到 NVIC,由 NVIC 决定是否响应中断
  • CPU 响应中断后,执行中断服务函数
  • 适用于需要 CPU 处理的场景

事件

  • 事件不发送到 NVIC,而是直接触发外设操作
  • 可用于触发 DMA 传输、ADC 转换等
  • 适用于需要快速响应的场景
三、EXTI配置与代码实现
3.1 标准库配置步骤

以 EXTI0(PA0)为例,使用标准库配置 EXTI 的基本步骤:

  1. 使能 SYSCFG 时钟和 GPIO 时钟
  2. 配置 GPIO 为输入模式
  3. 配置 EXTI 中断线
  4. 配置 NVIC 中断优先级
  5. 使能 EXTI 中断
3.2 代码实现(EXTI0,PA0,下降沿触发)
#include"stm32f4xx.h"/** * @brief 初始化EXTI0(PA0) * @param 无 * @retval 无 */voidEXTI0_Init(void){GPIO_InitTypeDef GPIO_InitStructure;EXTI_InitTypeDef EXTI_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;// 1. 使能时钟RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);// 2. 配置GPIOGPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;GPIO_InitStructure.GPIO_PuPd
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/3 18:18:37

基于JLink接口定义的工业控制器烧录操作指南

以下是对您提供的技术博文进行 深度润色与专业重构后的终稿 。全文已彻底去除AI痕迹,采用资深嵌入式系统工程师第一人称视角写作,语言自然、逻辑严密、节奏紧凑,兼具教学性、工程实操性与行业洞察力。文中所有术语、参数、流程均严格依据SE…

作者头像 李华
网站建设 2026/5/13 23:27:13

进阶技巧:混合数据集提升Qwen2.5-7B通用性实战

进阶技巧:混合数据集提升Qwen2.5-7B通用性实战 在完成基础微调后,你是否遇到过这样的问题:模型记住了“我是CSDN迪菲赫尔曼开发的”,但回答专业问题时却频频出错?或者能流畅写诗,却不会解数学题&#xff1…

作者头像 李华
网站建设 2026/5/13 11:55:54

无需编程!SenseVoiceSmall + WebUI 实现富文本转录

无需编程!SenseVoiceSmall WebUI 实现富文本转录 你是否遇到过这样的场景:会议录音里夹杂着笑声、突然响起的掌声、背景音乐,还有说话人情绪起伏带来的语气变化——而传统语音识别工具只给你干巴巴的一行文字? 这次我们不写代码…

作者头像 李华
网站建设 2026/5/13 15:17:40

告别驱动安装难题:Windows系统Android调试工具自动配置指南

告别驱动安装难题:Windows系统Android调试工具自动配置指南 【免费下载链接】Latest-adb-fastboot-installer-for-windows A Simple Android Driver installer tool for windows (Always installs the latest version) 项目地址: https://gitcode.com/gh_mirrors/…

作者头像 李华
网站建设 2026/5/13 21:37:23

开源AI绘图模型趋势分析:Z-Image-Turbo+弹性GPU部署教程

开源AI绘图模型趋势分析:Z-Image-Turbo弹性GPU部署教程 1. 当前开源AI绘图模型的发展脉络 过去两年,开源图像生成模型正经历一场静默却深刻的范式迁移。从Stable Diffusion早期依赖庞大参数量和长推理步数,到如今Z-Image-Turbo这类模型以“…

作者头像 李华
网站建设 2026/5/15 3:50:52

开源漫画工具Tachiyomi完全指南:从入门到精通

开源漫画工具Tachiyomi完全指南:从入门到精通 【免费下载链接】website Official website for the Tachiyomi app. 项目地址: https://gitcode.com/gh_mirrors/website72/website Tachiyomi是一款专为Android设备设计的开源漫画工具,通过自定义漫…

作者头像 李华