图像撕裂通常源于DCMI采样时序与OV5640输出时序不匹配,尤其是PCLK边沿和同步信号极性。首先,用示波器测量OV5640的PCLK、HSYNC、VSYNC,确认其空闲电平(高或低)和有效边沿。OV5640默认PCLK在数据稳定时下降沿,但寄存器0x3106可配置输出极性。STM32F4的DCMI通过EXTI触发同步,配置时需在DCMI_CR中设置PCLKPOL(采样边沿)、HSPOL和VSPOL。若极性反了,图像会错位或撕裂。修正步骤:1) 读取OV5640寄存器0x3106,确保bit[1](PCLK极性)和bit[0](HSYNC/VSYNC极性)符合预期;2) 在DCMI_CR中,将PCLKPOL设为与PCLK有效边沿一致(例如下降沿采样则置1),HSPOL/VSPOL设为与空闲电平相反(若HSYNC高有效,则HSPOL=0);3) 若仍撕裂,检查行长度和帧长度寄存器(0x380C-0x3811),确保与DCMI配置的分辨率一致。建议先用DMA抓取一帧原始数据,分析行起始位置是否对齐,以区分极性错误还是同步信号抖动问题。
mcuku 阿沐 · 2026-08-27