17 STM32标准库函数 之 嵌套向量中断控制器(NVIC) 所有函数的介绍及使用

本文详细介绍了STM32嵌套向量中断控制器(NVIC)的17个关键函数,包括初始化、配置优先级、设置中断状态等功能,帮助理解STM32中断系统操作。
摘要由CSDN通过智能技术生成

1 NVIC库函数预览

序号 函数名 描述
1 NVIC_DeInit 将外设 NVIC 寄存器重设为缺省值
2 NVIC_SCBDeInit 将外设 SCB 寄存器重设为缺省值
3 NVIC_PriorityGroupConfig 设置优先级分组:先占优先级和从优先级
4 NVIC_Init 根据 NVIC_InitStruct 中指定的参数初始化外设 NVIC 寄存器
5 NVIC_StructInit 把 NVIC_InitStruct 中的每一个参数按缺省值填入
6 NVIC_SETPRIMASK 使能 PRIMASK 优先级:提升执行优先级至 0
7 NVIC_RESETPRIMASK 失能 PRIMASK 优先级
8 NVIC_SETFAULTMASK 使能 FAULTMASK 优先级:提升执行优先级至-1
9 NVIC_RESETFAULTMASK 失能 FAULTMASK 优先级
10 NVIC_BASEPRICONFIG 改变执行优先级从 N(最低可设置优先级)提升至 1
11 NVIC_GetBASEPRI 返回 BASEPRI 屏蔽值
12 NVIC_GetCurrentPendingIRQChannel 返回当前待处理 IRQ 标识符
13 NVIC_GetIRQChannelPendingBitStatus 检查指定的 IRQ 通道待处理位设置与否
14 NVIC_SetIRQChannelPendingBit 设置指定的 IRQ 通道待处理位
15 NVIC_ClearIRQChannelPendingBit 清除指定的 IRQ 通道待处理位
16 NVIC_GetCurrentActiveHandler 返回当前活动的 Handler(IRQ 通道和系统 Handler)的标识符
17 NVIC_GetIRQChannelActiveBitStatus 检查指定的 IRQ 通道活动位设置与否
18 NVIC_GetCPUID 返回 ID 号码, Cortex-M3 内核的版本号和实现细节
19 NVIC_SetVectorTable 设置向量表的位置和偏移
20 NVIC_GenerateSystemReset 产生一个系统复位
21 NVIC_GenerateCoreReset 产生一个内核(内核+NVIC)复位
22 NVIC_SystemLPConfig 选择系统进入低功耗模式的条件
23 NVIC_SystemHandlerConfig 使能或者失能指定的系统 Handler
24 NVIC_SystemHandlerPriorityConfig 设置指定的系统 Handler 优先级
25 NVIC_GetSystemHandlerPendingBitStatus 检查指定的系统 Handler 待处理位设置与否
26 NVIC_SetSystemHandlerPendingBit 设置系统 Handler 待处理位
27 NVIC_ClearSystemHandlerPendingBit 清除系统 Handler 待处理位
28 NVIC_GetSystemHandlerActiveBitStatus 检查系统 Handler 活动位设置与否
29 NVIC_GetFaultHandlerSources 返回表示出错的系统 Handler 源
30 NVIC_GetFaultAddress 返回产生表示出错的系统 Handler 所在位置的地址

1.1 函数NVIC_DeInit

函数名 NVIC_DeInit
函数原形 void NVIC_DeInit(void)
功能描述 将外设 NVIC 寄存器重设为缺省值
输入参数
输出参数
返回值
先决条件
被调用函数
NVIC_DeInit();

1.2 函数NVIC_SCBDeInit

函数名 NVIC_SCBDeInit
函数原形 void NVIC_SCBDeInit(void)
功能描述 将外设 SCB 寄存器重设为缺省值
输入参数
输出参数
返回值
先决条件
被调用函数
NVIC_SCBDeInit();

1.3 函数NVIC_PriorityGroupConfig

函数名 NVIC_SCBDeInit
函数原形 void NVIC_SCBDeInit(void)
功能描述 将外设 SCB 寄存器重设为缺省值
输入参数
输出参数
返回值
先决条件
被调用函数

NVIC_PriorityGroup
该参数设置优先级分组位长度

NVIC_PriorityGroup 描述
NVIC_PriorityGroup_0 先占优先级 0 位,从优先级 4 位
NVIC_PriorityGroup_1 先占优先级 1 位
NVIC_PriorityGroup_2
NVIC_PriorityGroup_3
NVIC_PriorityGroup_4

例:
/* Configure the Priority Grouping with 1 bit */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);

1.4 函数 NVIC Init

函数名 NVIC_Init
函数原形 void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)
功能描述 根据 NVIC_InitStruct 中指定的参数初始化外设 NVIC 寄存器
输入参数 NVIC_InitStruct:指向结构 NVIC_InitTypeDef 的指针,包含了外设 GPIO 的配置信息,参阅 Section:NVIC_InitTypeDef 查阅更多该参数允许取值范围
输出参数
返回值
先决条件
被调用函数

NVIC_InitTypeDef structure
typedef struct
{
u8 NVIC_IRQChannel;
u8 NVIC_IRQChannelPreemptionPriority;
u8 NVIC_IRQChannelSubPriority;
FunctionalState NVIC_IRQChannelCmd;
} NVIC_InitTypeDef;

NVIC_IRQChannel
该参数用以使能或者失能指定的 IRQ 通道

<
NVIC_IRQChannel 描述
WWDG_IRQChannel 窗口看门狗中断
PVD_IRQChannel PVD 通过 EXTI 探测中断
TAMPER_IRQChannel
RTC_IRQChannel RTC 全局中断
FlashItf_IRQChannel FLASH 全局中断
RCC_IRQChannel RCC 全局中断
EXTI0_IRQChannel 外部中断线 0 中断
EXTI1_IRQChannel 外部中断线 1 中断
EXTI2_IRQChannel 外部中断线 2 中断
EXTI3_IRQChannel 外部中断线 3 中断
EXTI4_IRQChannel 外部中断线 4 中断
DMAChannel1_IRQChannel DMA 通道 1 中断
DMAChannel2_IRQChannel DMA 通道 2 中断
DMAChannel3_IRQChannel DMA 通道 3 中断
DMAChannel4_IRQChannel DMA 通道 4 中断
DMAChannel5_IRQChannel DMA 通道 5 中断
DMAChannel6_IRQChannel DMA 通道 6 中断
DMAChannel7_IRQChannel DMA 通道 7 中断
ADC_IRQChannel ADC 全局中断
USB_HP_CANTX_IRQChannel USB 高优先级或者 CAN 发送中断
USB_LP_CAN_RX0_IRQChannel USB 低优先级或者 CAN 接收 0 中断
CAN_RX1_IRQChannel CAN 接收 1 中断
CAN_SCE_IRQChannel CAN SCE 中断
EXTI9_5_IRQChannel 外部中断线 9-5 中断
TIM1_BRK_IRQChannel TIM1 暂停中断
TIM1_UP_IRQChannel TIM1 刷新中断
TIM1_TRG_COM_IRQChannel TIM1 触发和通讯中断
TIM1_CC_IRQChannel TIM1 捕获比较中断
TIM2_IRQChannel TIM2 全局中断
TIM3_IRQChannel TIM3 全局中断
TIM4_IRQChannel TIM4 全局中断
I2C1_EV_IRQChannel I2C1 事件中断
I2C1_ER_IRQChannel I2C1 错误中断
I2C2_EV_IRQChannel I2C2 事件中断
I2C2_ER_IRQChannel I2C2 错误中断
SPI1_IRQChannel SPI1 全局中断
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

常驻客栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值