帧同步抖动导致图像撕裂,核心是DCMI捕获窗口与DMA双缓冲切换不同步。首先,确认OV5640的VSYNC(帧同步)极性配置正确,通常为低有效,且DCMI的VSPOL位需匹配。其次,检查DMA双缓冲的传输完成中断是否在帧内触发——若DMA在帧中间切换缓冲区,会撕裂。建议使用DCMI的帧结束(FRAME)中断来同步DMA缓冲区切换,而非依赖DMA传输完成。具体做法:在DCMI帧中断中,读取当前DMA活动缓冲区指针,切换至空闲缓冲区,并确保DMA配置为循环模式。另外,硬件上可在VSYNC引脚加RC滤波(如10kΩ+100nF)抑制抖动,或使用OV5640的HREF信号作为辅助同步。若抖动源于时钟,检查PCLK频率是否稳定,并调整DCMI的EXTEN(外部触发)为仅帧起始触发。实操建议:先用逻辑分析仪抓取VSYNC和DMA中断时序,确认抖动来源,再针对性优化。
mcuku 阿沐 · 2026-08-27