news 2026/8/27 2:15:39

STM32_NVIC

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
STM32_NVIC
简介

NVIC(Nested Vectored Interrupt Controller,嵌套向量中断控制器)是 Cortex-M4 内核中的中断控制器,用于管理所有中断和异常。STM32F407 系列芯片基于 Cortex-M4 内核,配备了功能强大的 NVIC,支持多达 82 个中断源,支持中断优先级分组、中断嵌套、中断屏蔽等功能,是实现实时系统的关键组件。本文从 NVIC 的基本原理出发,详细讲解 STM32F407 NVIC 的配置方法、代码实现、中断管理以及实际应用案例,帮助你快速掌握 NVIC 的使用技巧。

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

NVIC 是 Cortex-M4 内核中的中断控制器,其主要特点包括:

  • 多中断源:支持多达 82 个中断源
  • 优先级分组:支持 16 级优先级,可灵活分组
  • 中断嵌套:高优先级中断可以打断低优先级中断
  • 中断屏蔽:支持全局中断屏蔽和单个中断屏蔽
  • 自动上下文保存:自动保存和恢复 CPU 上下文

关键参数

  • 中断优先级:16 级优先级(0-15),0 为最高优先级
  • 优先级分组:抢占优先级和子优先级的分组方式
  • 中断向量:每个中断对应一个中断向量
  • 中断挂起:记录中断的状态
1.2 STM32F407 的 NVIC 资源

STM32F407 系列芯片基于 Cortex-M4 内核,配备了功能强大的 NVIC:

功能特性
中断源数量82 个中断源
优先级级别16 级优先级(0-15)
优先级分组5 种分组方式(0-4)
中断嵌套支持中断嵌套
中断屏蔽支持全局中断屏蔽和单个中断屏蔽
中断挂起支持中断挂起和清除

中断源分类

  • 系统异常:包括 NMI、HardFault、MemManage、BusFault、UsageFault 等
  • 外部中断:包括 WWDG、PVD、TAMPER、RTC、FLASH、RCC、EXTI、DMA、ADC、USART、SPI、I2C、TIM、CAN、USB、ETH 等

关键特性

  • 支持 16 级优先级
  • 支持中断优先级分组
  • 支持中断嵌套
  • 支持中断屏蔽
  • 支持中断挂起
  • 支持自动上下文保存
二、NVIC工作原理
2.1 基本工作原理

NVIC 的基本工作原理是管理所有中断和异常,根据优先级决定中断响应顺序。

工作流程

  1. 外设或外部事件触发中断
  2. NVIC 接收中断请求
  3. NVIC 根据优先级决定是否响应中断
  4. 如果中断优先级高于当前执行的优先级,NVIC 响应中断
  5. CPU 自动保存上下文,跳转到中断服务函数
  6. 中断服务函数执行完毕,CPU 自动恢复上下文,继续执行被打断的任务
2.2 优先级分组

NVIC 支持 5 种优先级分组方式:

分组方式0

  • 抢占优先级:0 位
  • 子优先级:4 位
  • 优先级范围:0-15

分组方式1

  • 抢占优先级:1 位
  • 子优先级:3 位
  • 抢占优先级范围:0-1
  • 子优先级范围:0-7

分组方式2

  • 抢占优先级:2 位
  • 子优先级:2 位
  • 抢占优先级范围:0-3
  • 子优先级范围:0-3

分组方式3

  • 抢占优先级:3 位
  • 子优先级:1 位
  • 抢占优先级范围:0-7
  • 子优先级范围:0-1

分组方式4

  • 抢占优先级:4 位
  • 子优先级:0 位
  • 抢占优先级范围:0-15
  • 子优先级范围:0
2.3 中断嵌套

NVIC 支持中断嵌套,高优先级中断可以打断低优先级中断。

中断嵌套规则

  • 抢占优先级高的中断可以打断抢占优先级低的中断
  • 抢占优先级相同的中断不能互相打断
  • 抢占优先级相同的中断,子优先级高的先响应
  • 抢占优先级和子优先级都相同的中断,中断号小的先响应
三、NVIC配置与代码实现
3.1 标准库配置步骤

使用标准库配置 NVIC 的基本步骤:

  1. 配置优先级分组
  2. 配置中断优先级
  3. 使能中断
3.2 代码实现(优先级分组方式2)
#include"stm32f4xx.h"/** * @brief 初始化NVIC * @param 无 * @retval 无 */voidNVIC_Init_Config(void){NVIC_InitTypeDef NVIC_InitStructure;// 1. 配置优先级分组方式2(2位抢占优先级,2位子优先级)NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/26 12:00:55

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

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

作者头像 李华
网站建设 2026/8/25 16:25:37

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

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

作者头像 李华
网站建设 2026/8/25 10:27:32

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

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

作者头像 李华
网站建设 2026/8/25 21:08:07

告别驱动安装难题: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/8/22 0:08:34

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

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

作者头像 李华
网站建设 2026/8/24 17:49:38

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

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

作者头像 李华