HAL_Delay() 函数和空的 for 循环有什么区别?定时器应创建中断并关闭 LED。如果我在中断函数中使用 HAL_Delay() ,结果是 LED 永远关闭:
void TIM6_DAC_IRQHandler() {
HAL_TIM_IRQHandler(&htim6);
HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);
HAL_Delay(125);
}
但如果我改用:
void TIM6_DAC_IRQHandler() {
HAL_TIM_IRQHandler(&htim6);
HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);
for (int i=0; i<1000000; i++);
}
然后 LED1,它在主文件中始终打开,会在短时间内关闭然后打开,正如我所期望的那样。那么为什么带有 HAL_Delay 的代码不起作用呢?