OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 33074|回复: 36

不带FIFO的OV7670怎么利用PCLK VSYNC HREF的输出时序来读取数据啊?请教调试经验,我做了充分的提问准备了

[复制链接]

5

主题

154

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2013-6-8
在线时间
2 小时
发表于 2013-7-3 20:59:49 | 显示全部楼层 |阅读模式

我实在顶不住了,该看的资料也都看完了,程序也研究透了,屏幕显示任然是花屏
有没有调试出来的,求指点!!求分享经验,谢谢啦!

  1. 这是关键部分的程序

int main(void)
{   ...

    OV7670_Window_Set(10,174,240,320);//ov7670的窗口输出
    LCD_SetWindow(0,0,239,319);
    LCD_DispDir(0);//竖屏,从左上角开始,Z字型扫描
    for(;;)
        camera_refresh();
     .....
}
//引脚定义

#define OV7670_VSYNC   (GPIOE->IDR&0x0040)
#define OV7670_HSYNC    (GPIOE->IDR&0x0020)
#define OV7670_PCLK     (GPIOE->IDR&0x0010)                  

#define OV7670_DATA     (GPIOF->IDR&0x00FF) //数据输入端口

void camera_refresh(void)
{
     u32 j;
     u16 color;
     LCD_SetXY(0, 0); //设置光标位置
     while(!OV7670_VSYNC);//0-1
     while(OV7670_VSYNC);//1-0
     for(j=76800; j>0; j--)
     {
           while(!OV7670_PCLK);//1→0
           while(OV7670_PCLK);//0→1
           color = OV7670_DATA;//读数据
           color <<= 8;
           while(!OV7670_PCLK);//1→0
           while(OV7670_PCLK);//0→1
           color |= OV7670_DATA;//读数
           LCD_WriteRAM(color);
      }
}

2.这是用逻辑分析仪抓取的波形,从上到下PCLK VSYNC HREF



3.我的这个OV7670模块是这样的,VCC GND SCL SDA VSYNC HREF  XCLK PCLK D0~D7,就这些脚,

我用PA8时钟输出8MHz(内部RC振荡器)给XCLK,SCL 和SDA能够对OV7670进行正常配置,并且初始化成功,上面是工作波形图,

PCLK VSYNC HREF接STM32引脚,设置成上拉输入的,屏幕显示方向是竖屏,从左到右,从上到下扫

不知道到底疏忽了什么地方,论坛里的高手帮帮忙啊

 
即使爬到最高的山上,一次也只能脚踏实地地迈一步。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2014-3-22
在线时间
0 小时
发表于 2014-5-14 17:32:34 | 显示全部楼层
ov7670需要最低10MHz时钟啊。。。你才8MHz
回复 支持 1 反对 0

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-4 01:03:06 | 显示全部楼层
看上去没啥问题哦.
发个以前我调试的代码给你吧,也是没有fifo,io读取的方式.

OV7670 GPIO版本(OK).rar

64.57 KB, 下载次数: 2505

我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

154

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2013-6-8
在线时间
2 小时
 楼主| 发表于 2013-7-4 16:57:19 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
还是不行,一直花屏,你的程序的现象也是一样的,还是花屏哦
直接抓取数据太困难了,OV7670输出像素时钟也太快了,只要漏掉一个数据,那后面的全都得错,然后就是花瓶了
→.→
还是谢谢原子哥的解答
即使爬到最高的山上,一次也只能脚踏实地地迈一步。
回复 支持 反对

使用道具 举报

5

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2013-5-23
在线时间
0 小时
发表于 2013-7-31 20:34:09 | 显示全部楼层
请问楼主你现在这个IO直接读取调出来了么,我最近也在调这个好几天了,一直是花屏啊,求楼主给指点一下啊
回复 支持 反对

使用道具 举报

5

主题

154

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2013-6-8
在线时间
2 小时
 楼主| 发表于 2013-8-2 10:45:08 | 显示全部楼层
回复【4楼】coolistar:
---------------------------------
早就没调了,不好玩,还是玩点别的吧
即使爬到最高的山上,一次也只能脚踏实地地迈一步。
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2013-4-6
在线时间
0 小时
发表于 2013-8-5 16:54:20 | 显示全部楼层
我的STM32超频到128M之后可以捕获,楼主可以试试超频,107VC我超过180M都比较稳定,
注意看OV7670的配置,其中0x6b这个寄存器是倍频,开始可以设置低一点
回复 支持 反对

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2013-4-6
在线时间
0 小时
发表于 2013-8-6 17:41:44 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我想问一下,我使用IO口模拟,或者DMA方式,显示出来的图形就像是黑白的,颜色很不明显,噪点多,而用FIFO,图像算是低彩,您用IO口出来的效果是什么样的?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-6 18:40:46 | 显示全部楼层
回复【7楼】lyh802:
---------------------------------
效果还可以啊,没有是黑白的.只是OV7670这个IC,可能就那效果了,平平淡淡.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2012-11-29
在线时间
3 小时
发表于 2013-8-18 01:03:26 | 显示全部楼层
下了你这个IO读取的,里面有 while(OV7670_PCLK==0);  //PCLK=L
可是我的程序死在这里了,用示波器看PCLK的波形,是正弦波,幅值0.6~1.8V,频率100HZ左右
回复 支持 反对

使用道具 举报

5

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2013-11-4
在线时间
0 小时
发表于 2013-11-4 09:23:07 | 显示全部楼层
楼主你要  我最近也在玩7670    我这个带FIFO     脑子是一头雾水啊  我用51做的   也是直接D0-D7直接接到单片机的IO上的   不知道能行不    请问下那个时序  Horizontal Timing 和 VGA frame timing 只看一个还是这两个都要看啊    我只是想用它拍照  之后通过串口传到上位机    求指点
回复 支持 反对

使用道具 举报

5

主题

154

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2013-6-8
在线时间
2 小时
 楼主| 发表于 2013-11-4 09:45:39 | 显示全部楼层
回复【10楼】share7we:
---------------------------------
带FIFO的参考原子哥的程序就行了
即使爬到最高的山上,一次也只能脚踏实地地迈一步。
回复 支持 反对

使用道具 举报

1

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2012-10-23
在线时间
1 小时
发表于 2013-12-10 22:38:27 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,你传的程序IO设置就好像有点问题,好像不是最终版本啊。
在sccb总线的头文件是:
#define SCCB_SCL    Gout(13) //SCL
#define SCCB_SDA    Gout(15)  
#define READ_SDA    Gin(15)
在c文件是:
RCC->APB2ENR|=1<<3;
//PORTB14 15
GPIOB->CRH&=0X00FFFFFF;
GPIOB->CRH|=0X33000000;    
GPIOB->ODR|=3<<14;    
OV7670的IO初始化也是同样的问题。
我把程序移植到mini板之后,初始化能成功(读取器件ID没有问题),现在就是数据D0~7端口读取数据不变。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-12-10 23:29:41 | 显示全部楼层
回复【12楼】哇哈哈0608:
---------------------------------
你这不是mini板的例程吧?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2012-10-23
在线时间
1 小时
发表于 2013-12-11 09:44:17 | 显示全部楼层
回复【13楼】正点原子:
---------------------------------
不是的,这个是你在1楼传的例子里面截取下来的。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-12-11 15:55:16 | 显示全部楼层
回复【14楼】哇哈哈0608:
---------------------------------
1楼的例子,不是Mini开发板的。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

12

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
170
金钱
170
注册时间
2014-3-5
在线时间
13 小时
发表于 2015-3-11 10:47:23 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥 你一楼的例程我看没有输出CLK给ov7670啊~  是模块不带fifo但是带晶振么?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-3-11 23:06:38 | 显示全部楼层
回复【17楼】tjusyj:
---------------------------------
是的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
27
金钱
27
注册时间
2015-4-18
在线时间
0 小时
发表于 2015-4-18 15:44:05 | 显示全部楼层
回复【10楼】share7we:
---------------------------------层主啊!真是缘分啊!我由于还没有学习32,也是计划直接用51读取FIFO的数据传送的上位机!但是现在没有什么头绪啊,OV7670的操作都是一知半解,能否给予援手,分享一下你的经验!感激不尽啊!
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
29
金钱
29
注册时间
2015-5-25
在线时间
1 小时
发表于 2015-5-25 16:16:13 | 显示全部楼层
楼主,我的是不带FIFO不带晶振的摄像头,研究了很久,没什么进展,求发源代码orz,935011539@qq.com
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2015-7-7
在线时间
15 小时
发表于 2015-7-8 09:41:28 | 显示全部楼层
回复【15楼】正点原子:
---------------------------------
原子哥,你给的程序是哪个开发板呀?mini开发板(STM32F103RBT6)能通过DMA直接采集ov7670(不带fifo)输出的数据吗?跪等回复
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-7-8 14:00:13 | 显示全部楼层
回复【21楼】flysky2310:
---------------------------------
战舰板。
Mini板没戏。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2015-7-7
在线时间
15 小时
发表于 2015-7-8 14:22:44 | 显示全部楼层
回复【22楼】正点原子:
---------------------------------
我现在不要求摄像头拍的图像速度有多么快,只想利用mini开发板(STM32F103RBT6)实现用DMA直接读取ov7670(不带fifo)的数据,如果试验成功再跟换207或者407之类的去做。您说的mini开发板没戏指的是就无法读取ov7670的数据,不能形成图像?谢谢!
用mini开发我已经调出带fifo的ov7670图像读取,现在想尝试不带fifo利用dma读取,请原子哥帮我分析下可以实现吗?如果不能实现是什么原因?谢谢!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-7-8 23:27:29 | 显示全部楼层
回复【23楼】flysky2310:
---------------------------------
我没有办法。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-1-26
在线时间
0 小时
发表于 2015-7-24 17:04:58 | 显示全部楼层
回复【22楼】正点原子:
---------------------------------
回复【2楼】正点原子:
---------------------------------
原子哥,你的程序下到战舰版后死在了checking regs了,初始化没成功吧?lcd的id也是0,看不到图像~求指点
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-1-26
在线时间
0 小时
发表于 2015-7-24 17:07:58 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥我的ov7670是不带fifo且不带晶振的,xclk我必须得自己配置吗?配置完了再加到你的代码里好像还是不行~急求原子哥解释!!求大神指点!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-7-26 22:11:36 | 显示全部楼层
回复【26楼】yy_sunshine99:
---------------------------------
必须自己给。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2015-1-26
在线时间
0 小时
发表于 2015-7-28 20:05:39 | 显示全部楼层
回复【27楼】正点原子:
---------------------------------
原子哥,现在我这个摄像头初始化成功了,可是还是没能在lcd读到图像,dma貌似也不可以,看了参考手册,发现dma通道没有对普通io口操作的,那我怎么去直接读io的数据?求指点(现在我的摄像头模块数据端口接的是pc0-pc7,采用的是直接取端口c的值76800次,lcd能显示初始化成功,可是屏幕就是白屏,什么都没有,我该怎么去读像素点?怎么让它显示图像? )
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-7-28 22:34:15 | 显示全部楼层
回复【28楼】yy_sunshine99:
---------------------------------
读GPIOC->IDR。
先搞定直接读GPIO,显示ok,再去搞什么dma

总想一步登天,不死才怪。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2016-3-2
在线时间
30 小时
发表于 2016-3-4 14:42:37 | 显示全部楼层
正点原子 发表于 2013-7-4 01:03
看上去没啥问题哦.
发个以前我调试的代码给你吧,也是没有fifo,io读取的方式.

原子哥,不带非佛,不带晶振,是不是就要把你屏蔽的xclk开关程序,取消屏蔽??
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-3-6 22:39:24 | 显示全部楼层
哥是13号 发表于 2016-3-4 14:42
原子哥,不带非佛,不带晶振,是不是就要把你屏蔽的xclk开关程序,取消屏蔽??

必须提供XCLK
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

16

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
265
金钱
265
注册时间
2015-11-1
在线时间
34 小时
发表于 2016-3-7 08:16:39 | 显示全部楼层
正点原子 发表于 2015-7-8 14:00
回复【21楼】flysky2310:
---------------------------------
战舰板。
Mini板没戏。

长知识了,一直想用MINI的DMA传OV7670数据,看来我是试不出来的了
这是我的小尾巴~
回复 支持 反对

使用道具 举报

16

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
265
金钱
265
注册时间
2015-11-1
在线时间
34 小时
发表于 2016-3-7 08:17:41 | 显示全部楼层
正点原子 发表于 2015-7-28 22:34
回复【28楼】yy_sunshine99:
---------------------------------
读GPIOC-&gt;IDR。
先搞定直接读GPIO,显示 ...

原子哥说的对,IO都没法抓取数据,怎么搞DMA
这是我的小尾巴~
回复 支持 反对

使用道具 举报

1

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2015-11-10
在线时间
19 小时
发表于 2016-4-22 11:22:44 | 显示全部楼层
调试出来了吗?   我调的也一直是花屏。。。原子哥说迷你版没戏?是什么原因呢
回复 支持 反对

使用道具 举报

1

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2015-11-10
在线时间
19 小时
发表于 2016-4-22 11:25:51 | 显示全部楼层
把摄像头遮住,刷新的部分会变成其他颜色。。
回复 支持 反对

使用道具 举报

4

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
125
金钱
125
注册时间
2014-3-10
在线时间
28 小时
发表于 2016-4-25 11:22:25 | 显示全部楼层
在中断里去抓取吧,死循环里抓取不太可靠
菜鸟也会成为老鸟
回复 支持 反对

使用道具 举报

9

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
150
金钱
150
注册时间
2016-4-5
在线时间
55 小时
发表于 2016-5-18 23:06:20 | 显示全部楼层
正点原子 发表于 2013-7-4 01:03
看上去没啥问题哦.
发个以前我调试的代码给你吧,也是没有fifo,io读取的方式.

原子哥,你这个程序用的是哪个版本的MDK啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-9 02:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表