GD32F407ZG的rtc中断优先级配置函数
时间: 2023-11-20 15:06:53 浏览: 136
GD32F407ZG RTC中断优先级配置函数的写法如下:
```c
void RTC_NVIC_Config(void)
{
NVIC_InitPara NVIC_InitStructure;
RTC_ClearFlag(RTC_FLAG_SEC); // 清除RTC的秒中断标志位
EXTI_ClearIntBitState(EXTI_LINE17); // 清除RTC的闹钟中断标志位
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // 配置NVIC的优先级分组
NVIC_InitStructure.NVIC_IRQ = RTC_IRQn; // 设置RTC中断向量
NVIC_InitStructure.NVIC_IRQPreemptPriority = 0; // 设置RTC中断抢占优先级
NVIC_InitStructure.NVIC_IRQSubPriority = 0; // 设置RTC中断响应优先级
NVIC_InitStructure.NVIC_IRQEnable = ENABLE; // 使能RTC中断
NVIC_Init(&NVIC_InitStructure); // 初始化NVIC
}
```
在这个函数中,我们首先清除RTC的秒中断和闹钟中断标志位,然后配置NVIC的优先级分组为2(每组2位),接着设置RTC中断向量、抢占优先级、响应优先级,最后使能RTC中断并初始化NVIC。
需要注意的是,NVIC的优先级分组决定了抢占优先级和响应优先级的位数,例如在本示例中,抢占优先级和响应优先级各占1位,总共2位。如果需要更多的优先级位数,可以选择更高的优先级分组。
阅读全文