中断嵌套的实现依赖 NVIC 配置:
高优先级中断可中断低优先级中断。
相同抢占优先级中,子优先级较低的中断优先响应。
中断嵌套示例
假设配置:
定时器中断优先级为 0(最高)。
按键中断优先级为 2。
代码:
c
复制代码
void EXTI0_IRQHandler(void) {
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); // 模拟按键中断处理
HAL_Delay(1000); // 长时间延迟,模拟耗时任务
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
}
void TIM2_IRQHandler(void) {
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0); // 定时器中断
HAL_TIM_IRQHandler(&htim2);
}
结果:
定时器中断(优先级 0)可中断正在执行的按键中断(优先级 2)。
|