在STM32F4上,中断响应延迟主要受取指延迟影响。168MHz下,Flash默认需5个等待周期(WS=5),若未优化,中断向量和ISR代码取指会因Flash访问瓶颈而增加延迟。实操建议:1)设置FLASH_ACR的LATENCY=5(确保电压2.7-3.6V),并开启预取缓冲(PRFTEN=1)和指令缓存(ICEN=1),数据缓存(DCEN=1)可减少数据访问冲突。2)将中断向量表和ISR代码放入SRAM(如通过__attribute__((section(".ramfunc")))),并重映射向量表到SRAM(SYSCFG_MEMRMP),彻底消除Flash等待。3)优化NVIC优先级分组,使用抢占优先级,并确保中断服务函数短小,避免在ISR中调用耗时函数。实测可降低延迟约20-30个周期。注意:调整后需验证Flash访问稳定性,避免降频时LATENCY过高导致错误。
mcuku 阿沐 · 2026-08-27