STM32 NVIC 中断优先级配置详解
这段代码是用来配置 NVIC(Nested Vectored Interrupt Controller)中断优先级的函数。在这里,将 NVIC 中断分组设置为 2,即 2 位抢占优先级和 2 位响应优先级。这意味着,当多个中断同时发生时,优先级高的中断会先被处理,而在同一优先级下,先到达的中断会先被处理。这种优先级设置可以根据具体的应用需求进行调整。
代码示例:
#include 'sys.h'
void NVIC_Configuration(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
}
解释:
#include 'sys.h': 包含系统头文件,其中包含 NVIC 相关定义。NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2): 设置 NVIC 中断分组为 2,意味着分配 2 位给抢占优先级和 2 位给响应优先级。
中断优先级设置的影响:
- 抢占优先级: 当多个中断同时发生时,具有更高抢占优先级的中断会立即获得处理权,打断正在执行的低优先级中断。
- 响应优先级: 当多个中断具有相同抢占优先级时,响应优先级高的中断会先被处理。
应用场景:
在实际应用中,需要根据不同的中断需求设置合适的优先级。例如,对于一些关键性的中断,例如错误处理或紧急情况,需要设置更高的优先级;而对于一些非关键性的中断,例如定时器中断,可以设置较低的优先级。
注意:
- 中断优先级设置需要与具体的应用场景相匹配。
- 不同的 STM32 型号可能具有不同的 NVIC 配置方式,请参考对应芯片的官方文档。
原文地址: https://www.cveoy.top/t/topic/jud1 著作权归作者所有。请勿转载和采集!