OpenEdv-开源电子网

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

读取的ov7670(带FIFO)的数据显示出来一直是花屏状态,求大家帮忙分析一下原因

[复制链接]

1

主题

6

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2017-11-18
在线时间
5 小时
发表于 2017-11-20 08:52:38 | 显示全部楼层 |阅读模式
1金钱
将数据打印至串口助手,然后使用matlab显示,一直是这种花屏状态。ov7670寄存器初始化显示没有问题,求大家帮忙分析一下这是什么原因。

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

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2017-11-18
在线时间
5 小时
 楼主| 发表于 2017-11-20 08:57:32 | 显示全部楼层
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-11-21 01:14:24 | 显示全部楼层
数据传输慢?数据传输有误?发送固定颜色,验证下看看?
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2017-11-18
在线时间
5 小时
 楼主| 发表于 2017-12-4 11:38:42 | 显示全部楼层
正点原子 发表于 2017-11-21 01:14
数据传输慢?数据传输有误?发送固定颜色,验证下看看?

caitiao.jpg 谢谢您的回复,我之前读数据读错了,现在数据读取感觉没有错误了,但是彩条显示还是不对,您能给看看是什么原因吗?
回复

使用道具 举报

2

主题

756

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4163
金钱
4163
注册时间
2017-10-24
在线时间
251 小时
发表于 2017-12-4 13:33:27 | 显示全部楼层
我觉得最好先单片机自己生成一个彩条,发送到MATLAB上查看效果;如果正确,再考虑上摄像头。不然的话,可能有问题的地方太多了,不方便排查。
十六进制带我飞。
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2017-11-18
在线时间
5 小时
 楼主| 发表于 2017-12-4 15:27:00 | 显示全部楼层
DreamWaterPro 发表于 2017-12-4 13:33
我觉得最好先单片机自己生成一个彩条,发送到MATLAB上查看效果;如果正确,再考虑上摄像头。不然的话,可能 ...

非常感谢您的回答,按照您说的方法,我用单片机生成了一幅彩条图像,通过串口打印出数据后使用matlab显示了一下,没有问题 zizhushengcheng.jpg 从左到右依次为红、灰、黄、白,我之前的调试的图像也是使用的matlab显示的,您看还有其他什么原因会导致之前的那种情况吗?
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2017-11-18
在线时间
5 小时
 楼主| 发表于 2017-12-4 17:04:58 | 显示全部楼层

RE: 读取的ov7670(带FIFO)的数据显示出来一直是花屏状态,求大家帮忙分析一下原因

本帖最后由 samiyate 于 2017-12-4 17:10 编辑

zhengchang.jpg 正常显示情况下,略微能看出非常模糊的色彩。照片的色彩会随着外面事物颜色的不同而变化,但显示非常模糊,到底有哪些原因会导致这种情况呢?摄像头的与板子的连线我都按原子大神的方法绑好了。 zc2.jpg 后面这张是一个竖着放置的绿色的杯子。
回复

使用道具 举报

2

主题

756

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4163
金钱
4163
注册时间
2017-10-24
在线时间
251 小时
发表于 2017-12-4 19:48:55 | 显示全部楼层
samiyate 发表于 2017-12-4 17:04
正常显示情况下,略微能看出非常模糊的色彩。照片的色彩会随着外面事物颜色的不同而变化,但显示非常模糊, ...

咦,我倒是觉得可能是这样的情况,摄像头输出的图像是按照行输出的,比方说是320个像素;但是在MATLAB上处理的时候,可能是认为一行只有240个像素,导致显示错位。

既然你的画面颜色正确,而且也可以根据摄像头拍摄东西的变化而变化,我猜想类似于这种显示错位的情况的可能性会比较大。
十六进制带我飞。
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2017-11-18
在线时间
5 小时
 楼主| 发表于 2017-12-6 10:48:56 | 显示全部楼层
DreamWaterPro 发表于 2017-12-4 19:48
咦,我倒是觉得可能是这样的情况,摄像头输出的图像是按照行输出的,比方说是320个像素;但是在MATLAB上 ...

非常感谢您的回复,根据您的建议,我又检查了一遍我的MATLAB程序,发现确实像素颠倒了,但我调过来之后却依然没有清晰的图像 caitaogengz.jpg 这是更正后的彩条图像,从串口打印出的数据来看,确实是数据有问题。 调整后.jpg 这个图是调整后正常配置的图像,依然是特别乱。。[mw_shl_code=c,true]
str3 = textread('565.txt','%s','delimiter',',');%从txt文件中读取图像的16进制数据
str4 = dec2bin(hex2dec(str3),16); % 转换成二进制数据
%将RGB565格式转换成RGB24
R = reshape(bin2dec(str4(:,1:5)),320,240); % R,从rgb565数据中取出R数据
R = uint8(bitshift(R',3));
G = reshape(bin2dec(str4(:,6:11)),320,240); % G,从rgb565数据中取出G数据
G = uint8(bitshift(G',2));
B = reshape(bin2dec(str4(:,12:16)),320,240); % B,从rgb565数据中取出B数据
B = uint8(bitshift(B',3));
im = cat(3,R,G,B); % combine RGB
imshow(im,[]); % show, custom[/mw_shl_code]

这是我从网上找到的matlab程序,已经更正为320×240的显示程序,原本为240×320的。
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2018-5-5
在线时间
4 小时
发表于 2018-5-11 19:56:19 | 显示全部楼层
兄弟  怎么解决的啊   哪方面问题?
回复

使用道具 举报

21

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
355
金钱
355
注册时间
2017-11-25
在线时间
80 小时
发表于 2018-6-5 20:13:15 | 显示全部楼层
请问楼主解决了嘛  知道是什么问题嘛
回复

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2019-1-26
在线时间
10 小时
发表于 2019-3-28 10:50:57 | 显示全部楼层
楼主解决了嘛?我现在也跟你出现一样的问题。。。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-24 06:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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