嵌入式 STM32 NVIC_InitTypeDefNVIC_InitStructure; 上面这个结构声明是什么意思?

NVIC_InitTypeDefNVIC_InitStructure;上面这个结构声明是什么意思?
2024-11-02 20:59:42
推荐回答(2个)
回答1:

NVIC_InitTypeDef 是结构体的类型 NVIC_InitStructure是结构体变量;
将结构体成员赋值后传给初始化函数NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);
初始化如下:
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3 ;//抢占优先级3
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //子优先级3
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道使能
NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化VIC寄存器

回答2:

NVIC中断寄存器组的初始化结构定义为NVIC_InitStructure。举个列子,你要配置中断寄存器组中的很多寄存器,这些寄存器的每一位都有含义,这样配置很不方便并且程序可读性差,所以把每一位的具体含义都用了define定义,放在
STM32 NVIC_InitType中,你把需要的配置完成后直接把这个结构体变量传递给NVIC相应的配置函数就会自动配置好你需要的中断配置了。