打印
[STM32F4]

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

[复制链接]
2004|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
如图实物图和图片。通过按键触发拍照,然后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 数据搬运时或者其余硬件异常比如摄像头是否排线过长等。所以希望有做过类似项目的朋友如果有遇到类似问题给点指导。感谢


沙发
零三翟邢止胃| | 2019-3-11 14:19 | 只看该作者
可以的啊! 不错的啊!!!!!

使用特权

评论回复
板凳
colin2135| | 2019-3-11 15:25 | 只看该作者
我之前也遇到过这个问题,而且发现一个规律。传输低分辨率的图像的时候,不会出现断层和错位,大于800*600,就经常出现断层和错位。
有一次,使用串口WIFI来传输图片的时候,发现低分辩率竟然也错位了,然后换回有线串口来传输,就每次都正常了。
我想问题点肯定是出在传输上面。于是做了个小测试,使用高波特率来传输图像就会出现断层,低分辨率就正常。
所以,可以判断 是数据从STM32传到上位机的过程中,数据丢失,或者数据错了。
解决方法可以将JPEG图像拆成多个包,每个包用CRC校验发送给上位机,分成多次传输。

使用特权

评论回复
地板
Marco-Marco|  楼主 | 2019-3-12 14:23 | 只看该作者
colin2135 发表于 2019-3-11 15:25
我之前也遇到过这个问题,而且发现一个规律。传输低分辨率的图像的时候,不会出现断层和错位,大于800*600 ...

感谢回复。我测试了下,代码里面改成拍完一张照后用同一张图片一直通过USB往PC发。测了上千次都没有出现过一次断层。所以目前觉得还是在OV5640成像这一步骤引起的bug,而非USB传输。

使用特权

评论回复
5
sdswsasx| | 2019-3-12 14:40 | 只看该作者
图片太大,下一张图片的一部分覆盖了上一张图片

使用特权

评论回复
6
heimaojingzhang| | 2019-4-1 11:53 | 只看该作者
哦哦  长知识了

使用特权

评论回复
7
Marco-Marco|  楼主 | 2019-4-25 21:07 | 只看该作者
解决办法见http://www.openedv.com/forum.php?mod=viewthread&tid=289142&pid=953831&page=1&extra=#pid953831

使用特权

评论回复
8
equivalent| | 2019-4-26 14:06 | 只看该作者
应该是数据量太大导致的问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:www.jhe-iot.com

32

主题

155

帖子

2

粉丝