nvic_init.NVIC_IRQChannelSubPriority = serial_config->sub_priority;
时间: 2024-04-01 15:31:29 浏览: 139
这段代码的作用是在NVIC_InitTypeDef类型的结构体变量nvic_init中,设置当前中断通道的响应优先级。NVIC_InitTypeDef结构体变量用于配置NVIC中断,其中NVIC_IRQChannelSubPriority是用于指定中断响应优先级的成员变量。在这段代码中,serial_config->sub_priority是一个整型变量,用于表示中断响应优先级。通过将serial_config->sub_priority的值赋值给nvic_init.NVIC_IRQChannelSubPriority,可以将当前中断通道的响应优先级设置为serial_config->sub_priority,以便后续进行中断优先级等相关参数的配置。
相关问题
#include <nvic.h> void NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; /* Configure the NVIC Preemption Priority Bits */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); /* Enable the USARTy Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); }
这是一个配置STM32F4微控制器中NVIC(Nested Vectored Interrupt Controller)的函数。在STM32F4中,NVIC用于管理中断,并且可以配置中断优先级。在这个函数中,首先通过调用NVIC_PriorityGroupConfig函数配置NVIC的优先级分组,然后通过配置NVIC_InitStructure结构体中的各个参数来初始化NVIC。在这个函数中,配置了USART1_IRQn和TIM3_IRQn两个中断的优先级和使能状态。USART1_IRQn用于USART1串口通信的中断处理函数,而TIM3_IRQn用于定时器3的中断处理函数。配置NVIC后,就可以启用这两个中断,并且可以在中断处理函数中进行相应的操作。
换HAL库表达 //Usart3 NVIC 配置 NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0 ;//抢占优先级0 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //子优先级0 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能 NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器
使用HAL库对Usart3进行NVIC配置的代码如下:
```c
/* 配置USART3中断优先级 */
HAL_NVIC_SetPriority(USART3_IRQn, 0, 0);
/* 使能USART3中断 */
HAL_NVIC_EnableIRQ(USART3_IRQn);
```
其中,`HAL_NVIC_SetPriority`函数用于设置中断的抢占优先级和子优先级,第一个参数为中断号,第二个参数为抢占优先级,第三个参数为子优先级。本例中将抢占优先级和子优先级均设置为0。
`HAL_NVIC_EnableIRQ`函数用于使能中断,将中断号作为参数传入即可。
注意,在使用HAL库进行NVIC配置时,不需要显式地初始化NVIC_InitStructure结构体,而是直接调用相关的函数进行配置。
阅读全文