nvic_prioritygroupconfig用法
时间: 2024-12-17 20:18:23 浏览: 86
`NVIC_PriorityGroupConfig`是用于STM32微控制器的一个功能,它允许用户设置中断系统的优先级组配置。这个函数通常在初始化期间使用,目的是为了设置整个芯片上所有中断共享的基本优先级级别。其基本用法如下:
```c
__STATIC_INLINE void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup)
{
RCC->AHBENR |= RCC_AHBENR_GPIOAEN; // Enable GPIO clock if necessary
__HAL_RCC_PWR_CLK_ENABLE(); // Enable Power Control clock
PWR->CR |= PWR_CR_VOS(0); // Set voltage scaling to highest (for best interrupt latency)
// Configure the NVIC priority group
NVIC_SetPriorityGrouping(NVIC_PriorityGroup);
}
```
其中,`NVIC_PriorityGroup`是一个枚举值,取值范围通常是0到3,表示不同的优先级组。例如:
- `NVIC_PriorityGroup_0`(低优先级):提供最长的中断延迟,适合处理周期性任务。
- `NVIC_PriorityGroup_1`(正常优先级):适合处理一般的实时任务。
- `NVIC_PriorityGroup_2`(高优先级):减少中断延迟,适合处理快速响应的任务。
- `NVIC_PriorityGroup_3`(最高优先级):提供最短的中断延迟,主要用于处理非常紧急的事件。
使用此函数后,需要记得保存和复位NVIC寄存器,以确保新设置立即生效。
阅读全文