首先,我们肯定是需要分组的,那么我们就需要用中断优先级分组函数 NVIC_PriorityGroupConfig,其函数声明如下:void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);我们在misc.c 函数中可以找到其值。 代码语言:javascript 代码运行次数:0 运行 AI代码解释 voidNVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup)...
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); /* UART2 ———– */ NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPrior...
有一点非常重要的是,NVIC_InitTypeDef结构体中的NVIC_IRQChannel是指中断通道,其实就是启动文件中的中断向量表中的中断向量,同时也是中断服务例程的函数名,这三者是同一个意思。理解这一点非常重要,这一点将会在下一篇的AFIO专题中讲到。 NVIC_InitTypeDef NVIC_InitStructure; //配置NVIC_InitTypeDef结构体 NVIC_InitStru...
NVIC_InitTypeDef NVIC_InitStructure;// 1)初始化 GPIO 口KEY_Init();// 2)开启 AFIO 时钟;使能复用功能时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);// 3)将中断线 2 与 GPIOE 映射起来,那么很显然是 GPIOE.2 与 EXTI2 中断线连接了GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2...
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //响应优先级为3 下面讲讲中断的相关寄存器: ISER(Interrupt Set-Enable Registers):中断使能寄存器组 用8个32位寄存器控制256个中断,而STM32F103只有60个可屏蔽中断,因此只用ISER[0](0~31)和ISER[1](32~59),通过设置相应的ISER位为1,进行使能。
NVIC全称nested vectored interrupt controller,嵌套 向量 中断控制器;cm3的所有中断机制都由NVIC管理; 1.1 "向量" cm3自动初始化了中断响应事件与中断服务程序入口地址相对应的向量表,如下表所示; cm3中断响应后,cm3通过nvic直接控制程序在内核层跳转至中断服务程序入口地址...
STM32F103x的NVIC相关库函数 1、函数NVIC_Delnit /* 函数名:NVIC_Delnit 函数原型:void NVIC_Delnit(void) 功能描述:将外设NVIC寄存器重设为缺省值 输入参数:无 输出参数:无 返回值:无 先决条件:无 被调用函数:无 *///例子NVIC_DeInit();//将外设NVIC寄存器重设为缺省值,所谓缺省值即缺失时为省事而补充的...
有一点非常重要的是,NVIC_InitTypeDef结构体中的NVIC_IRQChannel是指中断通道,其实就是启动文件中的中断向量表中的中断向量,同时也是中断服务例程的函数名,这三者是同一个意思。理解这一点非常重要,这一点将会在下一篇的AFIO专题中讲到。 NVIC_InitTypeDef NVIC_InitStructure; //配置NVIC_InitTypeDef结构体 ...
6.FunctionalState NVIC_IRQChannelCmd; //该中断是否使能。 7.} NVIC_InitTypeDef; 比如我们要使能串口 1 的中断,同时设置抢占优先级为 1,子优先级位 2,初始化的方法是: 1.USART_InitTypeDef USART_InitStructure; 2.NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;//串口 1 中断 ...
中断初始化函数 NVIC_Init 总结 STM32 NVIC 中断优先级管理 CM3 内核支持 256 个中断,其中包含了 16 个内核中断和 240 个外部中断,并且具有 256级的可编程中断设置。但 STM32 并没有使用 CM3 内核的全部东西,而是只用了它的一部分。STM32 有 84 个中断,包括 16 个内核中断和 68 个可屏蔽中断,具有 16 级...