OV5640+STM32F429实现拍照10%几率出现图片断层

2019-07-20 02:20发布

微信图片_20190308192345.jpg 微信图片_20190308192354.png 微信图片_20190308192358.jpg 微信图片_20190308192405.jpg 微信图片_20190308192408.jpg

如图实物图和图片。通过按键触发拍照,然后STM32F429通过DMA将OV5640生成的JPEG图像(2592x1944 pixels)搬运至外部SDRAM,然后再直接通过USB HS (外置phy USB3300)虚拟串口(CDC)传输到PC进行显示。MCU会在拍照完成得到DCMI_Frame中断后去检索图片头FF D8 和 图片尾FF D9, 如果同时检索到收尾再将整个图片发送出去。在出现的10%的断层图片里面,USB并没有丢包。
本人更倾向于是OV5640的软件控制这块出了问题但不排除USB传输,MCU 数据搬运时或者其余硬件异常比如摄像头是否排线过长等。所以希望有做过类似项目的朋友如果有遇到类似问题给点指导。感谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
17条回答
几何物联
2019-07-22 07:47
原因是图片在USB发送时丢包了。我是用的USB HS, 按512Byte为一个packet发送的。后面发现丢的都是512的倍数。原子的例程是用的UART,是否一样存在丢包问题没有去验证。反正我最终设计在上位机每收到一个packet后都主动给设备应答,然后设备再发下一个包。反正实测ST自己的USB HS 发送函数while(CDC_Transmit_HS(ppbuf,512)!=USBD_OK) 当得到USBD_OK后再发下一个包不是百分百稳定。 QQ截图20190410194446.png USB HS code.jpg

一周热门 更多>