打印
[STM32F4]

【转】在f429上实现ov2640串口摄像头

[复制链接]
1676|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
TXQDM|  楼主 | 2016-8-31 19:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在f429芯片集成了一个DCMI接口,可以与大多数数字摄像头直接相连,实现数据高速回传,此外f429中还有一个LCD控制器,如果如果DCMI和LCD显示缓存区是一样的,那么就可以实现摄像图像的实时显示。起初相要做的是刚刚所叙述的功能。但是手上有的是discovery板子,板载芯片是stm32f429zit6,管脚不够多,导致DCMI和LCD有管脚冲突(DCMI_HSYNC和LCD_VSYNC),两个功能不能同时使用。于是就换了种方案来实现,使用ov2640的jpeg模式,图像数据经过串口回传给电脑,使用电脑显示。
         经过分析,该程序主要解决两个部分的配置:1.串口   2.DCMI管脚
1. 串口
这里的串口配置可以使用最基本的配置即可,没有什么太特殊的。
2.DCMI配置
记得STM官方有提供过ov2640的驱动的,具体在哪里由于时间太久不知道了。将文件copy到工程中。首先要先完成管脚配置。这个在void OV2640_HW_Init(void)中实现。其次要完成DMA的配置,这里使用了双缓冲DMA。配置DMA在void OV2640_Init(ImageFormat_TypeDef ImageFormat)中完成。此外官方例程中的OV_Init中没有完成jpeg格式的支持需要自己添加,具体代码看程序。比较重要的一点就是要开启DCMI_JPEGCmd(ENABLE)。
到此就基本完成了。编译工程,就可以使用串口图像助手完成图像的读取。由于串口速度慢的原因,图像帧率只有1.5 frame/s。这主要是由于串口速度慢的原因。这个速度慢得要死,就当娱乐练手吧。

附件中有:可运行的程序还有一个串口图像助手。连线按照void OV2640_HW_Init(void)中配置的即可,或者适当修改。

STM32F4_OV2640.rar (528.23 KB)
图像串口.rar (177.33 KB)



沙发
huangcunxiake| | 2016-8-31 20:26 | 只看该作者
摄像头的数据比较多,必须的用DMA,要不CPU扛不住。

使用特权

评论回复
板凳
TXQDM|  楼主 | 2016-9-1 19:30 | 只看该作者
huangcunxiake 发表于 2016-8-31 20:26
摄像头的数据比较多,必须的用DMA,要不CPU扛不住。

恩,肯定的,必须用DMA传输!
MCU自己传会累死的。
高级点的会直接用RAM缓存,
效果会更好!

使用特权

评论回复
地板
huangcunxiake| | 2016-9-3 08:29 | 只看该作者
TXQDM 发表于 2016-9-1 19:30
恩,肯定的,必须用DMA传输!
MCU自己传会累死的。
高级点的会直接用RAM缓存,

对的,RAM这个可以搞一搞,要不速度跟不上。

使用特权

评论回复
5
TXQDM|  楼主 | 2016-9-3 21:17 | 只看该作者
huangcunxiake 发表于 2016-9-3 08:29
对的,RAM这个可以搞一搞,要不速度跟不上。

成本是个大问题,在就是需要CPU的支持!
不好搞啊

使用特权

评论回复
6
huangcunxiake| | 2016-9-8 11:06 | 只看该作者
可以挂载外置的RAM。

使用特权

评论回复
7
TXQDM|  楼主 | 2016-9-9 22:27 | 只看该作者
huangcunxiake 发表于 2016-9-8 11:06
可以挂载外置的RAM。

成本啊,多花不少钱的。

使用特权

评论回复
8
huangcunxiake| | 2016-9-12 09:15 | 只看该作者
TXQDM 发表于 2016-9-9 22:27
成本啊,多花不少钱的。

想高大上肯定多花几块钱吧

使用特权

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

本版积分规则

110

主题

593

帖子

11

粉丝