在STM32F4 168MHz下,Flash等待周期(通常为5个周期)会显著影响中断响应延迟,尤其是当代码或中断向量表位于Flash时。精确测量方法:使用定时器输入捕获或GPIO翻转法,在中断服务程序(ISR)入口处翻转一个GPIO,并用逻辑分析仪或示波器测量从外部触发(如外部中断引脚)到GPIO翻转的时间差。补偿策略:1)将中断向量表和关键ISR代码重定位到SRAM(通过__attribute__((section(".ramfunc")))),消除Flash等待;2)启用指令预取和缓存(ART加速器),减少Flash访问延迟;3)调整中断优先级和NVIC设置,确保高优先级中断不被阻塞。实测建议:在系统时钟配置后,用定时器测量多次中断延迟,取最大值和抖动,再根据最坏情况设计实时性预算。
mcuku 阿沐 · 2026-08-27