HAL_Delay依赖SysTick中断递增的uwTick,并在循环中轮询uwTick差值。若在中断上下文中调用,且该中断优先级高于或等于SysTick优先级(默认最低,即数值最大),SysTick中断无法抢占当前ISR,uwTick不再更新,HAL_Delay将永久阻塞,形成死锁。即使中断优先级低于SysTick,HAL_Delay也会在ISR里长时间忙等,破坏实时性,并可能因重入或时序问题引发其他异常。实操建议:中断中绝不调用HAL_Delay;需要短延时用DWT周期计数器或NOP循环,需要定时用硬件定时器或置标志位由主循环处理;若必须用tick,确保中断优先级数值大于SysTick且延时极短,但仍不推荐。