OpenEdv-开源电子网

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

STM32驱动OV7670彩条测试读出数据不对

[复制链接]

9

主题

70

帖子

0

精华

高级会员

Rank: 4

积分
570
金钱
570
注册时间
2016-3-1
在线时间
84 小时
发表于 2016-5-29 16:06:34 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 feiyinglala 于 2016-6-2 00:13 编辑

如题,我用STM32F051驱动OV7670,现在倒是可以从摄像头里读出数据,把OV7670配置为测试模式(8色彩条),读出的数据包却是这样,见图1,颜色不对劲。想请教一下如何查找问题,从哪里下手

说明:数据中一段对应一行像素,数据段中每行前两字节为我自己加的格式头,随后的30字节才是对应的像素数据。一行像素分22个包由无线模块传送,最后一个包的尾部20字节无用。
OV7670的工作模式:320*240 QVGA RGB565
上位机画面显示

彩条测试.jpg

读出的数据包
[mw_shl_code=c,true]/*****************************读出的第一行像素************************/
FE 01 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7
00 01 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD 52 B4 F1 B5 48
00 01 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48
00 01 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48
00 01 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 47 07 26 03 25 74 25 74 25 74 25 74 25 74 25 74
00 01 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74
00 01 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74
00 01 25 74 25 74 25 74 25 74 2C CF 1C 8E 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05
00 01 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05
00 01 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 BA 66
00 01 A1 A3 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1
00 01 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1
00 01 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 A0 4D 90 0B 90 63 90 63
00 01 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63
00 01 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E
00 01 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E
00 01 00 6E 00 6E 00 6E 08 0A 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 20 94 51
00 01 BD D7 BD D7 BD D7 BD D7 BD D7 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
/*****************************读出的第一行像素************************/
FE 02 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7
00 02 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD D7 BD 52 B4 F1 B5 48
00 02 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48
00 02 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48
00 02 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 B5 48 47 07 26 03 25 74 25 74 25 74 25 74 25 74 25 74
00 02 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74
00 02 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74 25 74
00 02 25 74 25 74 25 74 25 74 2C CF 1C 8E 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05
00 02 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05
00 02 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 1D 05 BA 66
00 02 A1 A3 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1
00 02 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1
00 02 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 98 D1 A0 4D 90 0B 90 63 90 63
00 02 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63
00 02 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63 90 63
00 02 90 63 90 63 90 63 90 63 90 63 90 63 22 02 00 E0 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E
00 02 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E
00 02 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E 00 6E
00 02 00 6E 00 6E 00 6E 08 0A 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 20 94 51
00 02 BD D7 BD D7 BD D7 BD D7 BD D7 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[/mw_shl_code]

/***************STM驱动读取摄像头的程序如下***************/

[mw_shl_code=c,true]{//读取一帧画面
        V_XCLK_OFF();
        //等待进入帧同步中断
        do{
                V_XCLK_L;
                V_XCLK_H;                        
        }
        while(!GPIO_ReadInputDataBit(V_CONTROL,V_SYNC_Pin));                                                //捕获场同步的高电平

        do{
                V_XCLK_L;
                V_XCLK_H;                        
        }
        while(GPIO_ReadInputDataBit(V_CONTROL,V_SYNC_Pin));                                                //捕获场同步的高电平

        Task_Flag |= 0x08;
        Task_Flag |= 0x04;
        Herf_Counter = 0;
        Current_Buf = V_Buf1;
        for(;Herf_Counter<=240;)
        {
                do        {
                        V_XCLK_H;
                        V_XCLK_L;               
                }
                while(!GPIO_ReadInputDataBit(V_CONTROL,V_HERF_Pin));        //捕获到行同步

                Point_Counter =0;
                Herf_Counter += 1;                                //
                Point_Counter = 0;
                *Current_Buf = (u8) (Herf_Counter>>8);        //DDêy&#184;3&#214;μ
                *(Current_Buf+1) = (u8) Herf_Counter;
                while(Point_Counter<640)
                {
                        V_XCLK_H;
                        *(Current_Buf+2+Point_Counter++) = OV7670_Data_Cap();
                        V_XCLK_L;               
                }
                OV7670_Data_Send(Current_Buf);        //每采集完一行的数据后就发送,然后
        }
        return 0;
}[/mw_shl_code]

OV7670寄存器配置











寄存器配置及上位机画面显示.rar

20.84 KB, 下载次数: 353

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-6-1 22:57:51 | 显示全部楼层
回复

使用道具 举报

9

主题

70

帖子

0

精华

高级会员

Rank: 4

积分
570
金钱
570
注册时间
2016-3-1
在线时间
84 小时
 楼主| 发表于 2016-6-2 00:14:14 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 00:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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