STM32F407的DMA+DCMI方式采集OV7620的一些疑惑(DCMI_CR中VSPOL与HSPOL的配置,原子哥的程序似乎不符合参考手册中的解释)?

2019-07-20 12:56发布

位 7 VSPOL:垂直同步极性 (Vertical synchronization polarity)
此位指示数据在并行接口上无效时 VSYNC 引脚的电平。
0:VSYNC 低电平有效
1:VSYNC 高电平有效
位 6 HSPOL:水平同步极性 (Horizontal synchronization polarity)
此位指示数据在并行接口上无效时 HSYNC 引脚的电平。
0:HSYNC 低电平有效
1:HSYNC 高电平有效
以上是407参考手册的解释,由于OV2640与OV7620时序相同,即行有效电平为高(此时数据有效),场有效电平为低。也就是说VSYNC的配置应为1,HSYNC 配置应为0.
原子哥程序中是这样配置的,有些疑惑。

DCMI->CR|=0<<6; //HSYNC 低电平有效
DCMI->CR|=0<<7; //VSYNC 低电平有效 OV2640 VSYNC输出时序高电平时数据无效,为毛设置为低?
还有如何用定义的数组存储采集到的数据的问题,希望有用过STM32F407的DMA+DCMI方式采集摄像头数据的兄弟不吝赐教

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
正点原子
1楼-- · 2019-07-20 16:43
请看我们视频教程。有介绍。
★DZH1991★
2楼-- · 2019-07-20 22:21
回复【2楼】正点原子:
---------------------------------
视频已经看了几遍了,不知道是否是我的理解有问题。我的理解是DCMI_CR寄存器的VSPOL和HSPOL这两位应根据摄像头的具体输出时序来配置,从OV2640的输出时序来看,VSYNC在数据无效时是高电平状态(VSPOL位应该配置为VSPOL=1,VSYNC 高电平有效),HREF在数据无效时是低电平状态(HSPOL位应该配置为HSPOL=0,HREF低电平有效);但不管如何,从OV2640的的输出时序来看,VSPOL与HSPOL这两位的配置应该不同的。希望原子哥帮忙解答
OV2640输出时序链接http://wenku.baidu.com/link?url=_CtoHLgypeH_LKgZF5PBOmefH7THqb0BDlEhsExwPqXeXtvQ9Mpv4w4MnDZwRtHlW-yVAqCrgDsq20OW39TzBkBpNm4hDkiPgZyN4Gcl8MG
正点原子
3楼-- · 2019-07-20 23:07
 精彩回答 2  元偷偷看……
★DZH1991★
4楼-- · 2019-07-21 01:27
苦于没有示波器,不过问题已经解决了,网上看到的OV2640输出时序是VSYNC高电平数据无效,原子哥的OV2640可能修改了默认设置;我用的OV7620输出时序也是VSYNC高电平数据无效,所以我将VSPOL设置为:VSPOL=1,经过一番折腾,数据基本搞定了。
宁同学
5楼-- · 2019-07-21 03:09
 精彩回答 2  元偷偷看……
gefeng16
6楼-- · 2019-07-21 07:48
 精彩回答 2  元偷偷看……

一周热门 更多>