OpenEdv-开源电子网

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

求大神们给一个F103读取OV7670数据的程序参考

[复制链接]

27

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2018-2-1
在线时间
71 小时
发表于 2018-6-1 17:05:12 | 显示全部楼层 |阅读模式
10金钱
想用F103ZET读取OV7670的数据,摄像头不带晶振,不带FIFO,我用PWM模拟一个12MHz输入给OV7670,
程序是用摄像头的例程改的,现在问题来了,单片机读取不到OV7670寄存器的数据,向摄像头的寄存器
写入数据不知道有没有成功,但是向OV7670读取它的寄存器数据是一定都不出来,调试发现它的返回值是0xff,
并不是寄存器对应的值。
驱动程序是在正点原子的摄像头例程复制过来的。

请问,问题出在哪里?

如果可以,请给我一个可以运行的程序参考下。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

200

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1279
金钱
1279
注册时间
2017-7-18
在线时间
257 小时
发表于 2018-6-1 17:05:13 | 显示全部楼层
IMG_20180426_160905.jpg
测试图片。
实验28 摄像头实验OV7670 无晶振 不带FIFO不带DMA测试通过.zip (3.51 MB, 下载次数: 1515)
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10570
金钱
10570
注册时间
2017-2-18
在线时间
1913 小时
发表于 2018-6-1 17:32:13 | 显示全部楼层
原子这边的OV7670是带FIFO的,例程也是基于这个来 写的,要网上找找了
回复

使用道具 举报

27

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2018-2-1
在线时间
71 小时
 楼主| 发表于 2018-6-1 17:40:01 | 显示全部楼层
peng1554 发表于 2018-6-1 17:32
原子这边的OV7670是带FIFO的,例程也是基于这个来 写的,要网上找找了

我知道原子的是带FIFO的,但是我只是复制了他的的SCCB驱动代码而已,其他的都没有用,
现在的问题是:我想要读取摄像头寄存器固有的数据都读不出来,不知道问题出在哪里
回复

使用道具 举报

27

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2018-2-1
在线时间
71 小时
 楼主| 发表于 2018-6-1 17:42:47 | 显示全部楼层
peng1554 发表于 2018-6-1 17:32
原子这边的OV7670是带FIFO的,例程也是基于这个来 写的,要网上找找了

之前也有找到原子哥的一个,但是那个程序运行不了的,只能看一部分代码,
回复

使用道具 举报

7

主题

200

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1279
金钱
1279
注册时间
2017-7-18
在线时间
257 小时
发表于 2018-6-1 20:41:47 | 显示全部楼层
给摄像头的时钟我用的是PA8输出的MCO,8M输出。
回复

使用道具 举报

7

主题

200

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1279
金钱
1279
注册时间
2017-7-18
在线时间
257 小时
发表于 2018-6-1 20:48:30 | 显示全部楼层
这个程序可以参考参考,最好还是买一个带FIFO的速度会快很多。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-6-2 01:57:52 | 显示全部楼层
你的12M频率正常么
回复

使用道具 举报

27

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2018-2-1
在线时间
71 小时
 楼主| 发表于 2018-6-2 08:57:39 | 显示全部楼层
正点原子 发表于 2018-6-2 01:57
你的12M频率正常么

用示波器看的,是12M
回复

使用道具 举报

27

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2018-2-1
在线时间
71 小时
 楼主| 发表于 2018-6-2 09:12:05 | 显示全部楼层

非常感谢

回复

使用道具 举报

27

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2018-2-1
在线时间
71 小时
 楼主| 发表于 2018-6-2 09:23:58 | 显示全部楼层

//#define        OV7670_PWDN                PAout(14)   //PWDN=0
//#define        OV7670_RESET        PAout(13)   //RESET=1


注释的这两行是不是直接将PWDN接地,RESET接3V3?
回复

使用道具 举报

27

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2018-2-1
在线时间
71 小时
 楼主| 发表于 2018-6-2 10:40:23 | 显示全部楼层

2.png 1.png
运行程序后一直卡在这个延时函数里面出不来,OV7670初始化的返回值一直为:非零值。
这是您给的程序,我自己的程序同样是这个问题,摄像头已经换过几个测试,结果都是
摄像头初始化失败。
回复

使用道具 举报

7

主题

200

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1279
金钱
1279
注册时间
2017-7-18
在线时间
257 小时
发表于 2018-6-2 11:41:21 | 显示全部楼层
可以看一下读型号是否正确
        temp=SCCB_RD_Reg(0x0B); //读取产品型号 = 0x73
        if(temp!=0x73)return 2;  
        temp=SCCB_RD_Reg(0x0A);   
        if(temp!=0x76)return 2;
连线是否错误。
回复

使用道具 举报

27

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2018-2-1
在线时间
71 小时
 楼主| 发表于 2018-6-2 14:11:49 | 显示全部楼层
周易八索连山 发表于 2018-6-2 11:41
可以看一下读型号是否正确
        temp=SCCB_RD_Reg(0x0B); //读取产品型号 = 0x73
        if(temp!=0x73)return 2; ...

读型号的返回值是0XFF,
连线如下:
   SCK    -->  PE5
   SDA   -->  PE4
   VSYNC  -->  PE3
   HREF    -->  PE2
   PCLK    -->  PE1
  D7-D0   -->PG15-PG8
  PWDN  ---> GND
   RESET  ---> 3V3
回复

使用道具 举报

7

主题

200

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1279
金钱
1279
注册时间
2017-7-18
在线时间
257 小时
发表于 2018-6-2 15:26:20 | 显示全部楼层
我又测试了一遍发现没什么问题,如果一直卡在初始化那里,可能是你sccb有问题,也有可能是给摄像头的时钟有问题。我这个程序里面给摄像头提供的时钟是8M的,你如果使用12M的可能有点差别,需要更改一下0x11这个地址的寄存器值,分频系数在大点。
11 CLKRC 80 读写 内部时钟
位[7]:保留
位[6]:直接使用外部时钟(没有预分频)
位[5:0]:内部时钟分频
F(内部时钟)=F(输入时钟)/(位[5:0]+1)
范围:[0000]~[1111]

实验28 摄像头实验OV7670 无晶振 不带FIFO不带DMA测试通过.zip (386.06 KB, 下载次数: 79)
回复

使用道具 举报

7

主题

200

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1279
金钱
1279
注册时间
2017-7-18
在线时间
257 小时
发表于 2018-6-2 15:28:53 | 显示全部楼层
地址 寄存器名 默认值 读/写 描述
0A PID 76 读 产品高位识别号(只读)
0B VER 73 读 产品低位识别号(只读)
回复

使用道具 举报

7

主题

200

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1279
金钱
1279
注册时间
2017-7-18
在线时间
257 小时
发表于 2018-6-2 15:29:39 | 显示全部楼层
这两个寄存器的值不对那可能是sccb通信有问题。
回复

使用道具 举报

27

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2018-2-1
在线时间
71 小时
 楼主| 发表于 2018-6-2 17:56:52 | 显示全部楼层
周易八索连山 发表于 2018-6-2 15:26
我又测试了一遍发现没什么问题,如果一直卡在初始化那里,可能是你sccb有问题,也有可能是给摄像头的时钟有 ...

我是用你的程序测试的,硬件看你的图片应该跟我的是一样的,接线也是按着程序里的io定义接的,早上测试也是卡在初始化,换了另一个摄像头还是一样,好崩溃
回复

使用道具 举报

27

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2018-2-1
在线时间
71 小时
 楼主| 发表于 2018-6-2 18:15:59 | 显示全部楼层
周易八索连山 发表于 2018-6-2 15:26
我又测试了一遍发现没什么问题,如果一直卡在初始化那里,可能是你sccb有问题,也有可能是给摄像头的时钟有 ...

神奇的事情发生了,换了个J-LINK调试竟然可以了,不知道这是什么原理。。。。之前一直是用ST-LINK调试的
回复

使用道具 举报

7

主题

200

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1279
金钱
1279
注册时间
2017-7-18
在线时间
257 小时
发表于 2018-6-3 12:47:22 | 显示全部楼层
yonnhor 发表于 2018-6-2 18:15
神奇的事情发生了,换了个J-LINK调试竟然可以了,不知道这是什么原理。。。。之前一直是用ST-LINK调试的

恭喜了。。。
回复

使用道具 举报

27

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2018-2-1
在线时间
71 小时
 楼主| 发表于 2018-6-4 08:26:09 | 显示全部楼层

接下来想在这个基础上做个识别二维码的,不需要用到显示屏,能给点思路不
回复

使用道具 举报

27

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2018-2-1
在线时间
71 小时
 楼主| 发表于 2018-6-4 11:25:06 | 显示全部楼层
周易八索连山 发表于 2018-6-2 15:26
我又测试了一遍发现没什么问题,如果一直卡在初始化那里,可能是你sccb有问题,也有可能是给摄像头的时钟有 ...


今天用我的程序去调试了一下,还是卡在这个SCCB开始信号的延时函数里,
想不明白这个延时函数有什么问题冲突了,这个是在例程里直接复制粘贴的,
可以帮我分析下是什么原因吗? 谢谢!
4.png
3.png
回复

使用道具 举报

32

主题

300

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1049
金钱
1049
注册时间
2012-3-30
在线时间
321 小时
发表于 2018-6-4 11:34:42 | 显示全部楼层
好,不错,看看。
回复

使用道具 举报

7

主题

200

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1279
金钱
1279
注册时间
2017-7-18
在线时间
257 小时
发表于 2018-6-4 15:57:57 | 显示全部楼层
yonnhor 发表于 2018-6-4 08:26
接下来想在这个基础上做个识别二维码的,不需要用到显示屏,能给点思路不

摄像头颜色二值化。。
回复

使用道具 举报

27

主题

113

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
344
金钱
344
注册时间
2018-2-1
在线时间
71 小时
 楼主| 发表于 2018-6-9 09:04:08 | 显示全部楼层

哥 ,你的显示屏的连线是和原子的开发板一样的吗?我用你的程序,显示屏不亮
回复

使用道具 举报

7

主题

200

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1279
金钱
1279
注册时间
2017-7-18
在线时间
257 小时
发表于 2018-6-9 18:31:43 | 显示全部楼层
yonnhor 发表于 2018-6-9 09:04
哥 ,你的显示屏的连线是和原子的开发板一样的吗?我用你的程序,显示屏不亮

显示屏的驱动用自己的就好了,函数的命名方式和原子的一样的。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-29 08:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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