这段代码是用来配置 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 配置方式,请参考对应芯片的官方文档。
STM32 NVIC 中断优先级配置详解

原文地址: https://www.cveoy.top/t/topic/jud1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录