17 STM32标准库函数 之 嵌套向量中断控制器(NVIC) 所有函数的介绍及使用
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 全局中断 |
<