搜索
bottom↓
回复: 14

请教 wangguanfu大哥!

[复制链接]

出0入0汤圆

发表于 2012-11-10 12:30:45 | 显示全部楼层 |阅读模式
您好!我遇到了一个摄像头问题?请问能否赐教下?我用stm32驱动ov7670摄像头已经驱动成功了,但是有点问题  就是得到的图像   有几行能大概反应出物体的轮廓,但是颜色是彩色的,还有几行是能够准确显示图像的没有出现彩色 这是什么原因啊

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2012-11-10 23:08:02 | 显示全部楼层
晕……这标题起的,,

出0入0汤圆

 楼主| 发表于 2012-11-12 19:50:52 | 显示全部楼层
ayuanshop 发表于 2012-11-10 23:33
上图,上代码

这是我拍的键盘图像  能大致看出键盘的轮廓,但都彩条
这是主函数
int main(void)
{       
        u8 i;       
           Stm32_Clock_Init(9);        //系统时钟设置
        uart_init(72,9600);                 //串口初始化为9600
        delay_init(72);                            //延时初始化
          OV7670_Init();                                  

        LED_Init();                                  //初始化与LED连接的硬件接口
        LCD_Init();                                   //初始化LCD
        if(lcddev.id==0X6804)         //强制设置屏幕分辨率为320*240.以支持3.5寸大屏
        {
                lcddev.width=240;
                lcddev.height=320;
        }
        usmart_dev.init(72);        //初始化USMART               
                            
        POINT_COLOR=RED;//设置字体为红色
        LCD_ShowString(60,50,200,200,16,"Mini STM32");       
        LCD_ShowString(60,70,200,200,16,"OV7670 TEST");       
        LCD_ShowString(60,90,200,200,16,"ATOM@ALIENTEK");
        LCD_ShowString(60,110,200,200,16,"2012/10/31");           
        LCD_ShowString(60,130,200,200,16,"Use USMART To Set!");         
          LCD_ShowString(60,150,200,200,16,"OV7670 Init...");          
        while(OV7670_Init())//初始化OV7670
        {
                LCD_ShowString(60,150,200,200,16,"OV7670 Error!!");
                delay_ms(200);
            LCD_Fill(60,230,239,246,WHITE);
                delay_ms(200);
        }
        LCD_ShowString(60,150,200,200,16,"OV7670 Init OK");
        delay_ms(1500);                              
        Timerx_Init(10000,7199);                        //TIM3,10Khz计数频率,1秒钟中断                                                                          
        EXTI15_Init();                                                //使能定时器捕获
        OV7670_Window_Set(10,174,240,320);        //设置窗口          
          OV7670_CS=0;                                                          
        while(1)
        {       
                camera_refresh();        //更新显示       
                //  delay_ms(1000);       
                if(i!=ov_frame)                //DS0闪烁.
                {
                        i=ov_frame;
                        LED0=!LED0;
                }
        }          
}



这是拍照程序
void camera_refresh(void)
{
        u32 j;
        u16 color;
           
        if(ov_sta==2)
        {
                LCD_Scan_Dir(U2D_L2R);                //从上到下,从左到右
                LCD_SetCursor(0x00,0x0000);        //设置光标位置
                LCD_WriteRAM_Prepare();     //开始写入GRAM       
                OV7670_CS=0;         
                OV7670_RRST=0;                                //开始复位读指针
                OV7670_RCK=0;
                OV7670_RCK=1;
                OV7670_RCK=0;
                OV7670_RRST=1;                                //复位读指针结束
                OV7670_RCK=1;  
                for(j=0;j<76800;j++)
                {
                        GPIOB->CRL=0X88888888;
                                                                                     
                        OV7670_RCK=0;
               
                        color=OV7670_DATA;                //读数据
                        OV7670_RCK=1;        
                        color<<=8;                                          
                        OV7670_RCK=0;
                       
                        color|=OV7670_DATA;                //读数据                  
                        OV7670_RCK=1;
                        GPIOB->CRL=0X33333333;       
                                                  
                        LCD_WR_DATA(color);         
                }  
                OV7670_CS=1;                                                          
                OV7670_RCK=0;
                OV7670_RCK=1;
                EXTI->PR=1<<15;                     //清除LINE8上的中断标志位
                ov_sta=0;                                        //开始下一次采集
                ov_frame++;
                LCD_Scan_Dir(DFT_SCAN_DIR);        //恢复默认扫描方向                                                     
        }
}       

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-11-13 08:48:46 | 显示全部楼层
可能是数据错位吧

出0入0汤圆

 楼主| 发表于 2012-11-13 19:32:12 | 显示全部楼层
哈哈终于搞定了,原来是杜邦线间干扰,其实我以前也觉得是杜邦线间干扰,但我随意拉开杜邦线距离后没变化,后来问了一个高人,他教我按
1,将D0~D7捆绑在一起。  
2,将WRST,RCLK,RRST,OE,WEN,VSYNC这几个信号线捆绑在一起。  
3,将SCL,SDA,GND,VCC捆绑在一起。  
这样,将OV7670的所有连线分为3个部分,减少相互的干扰,这样操作之后,LCD就可以正常显示OV7670的数据了。

出0入0汤圆

发表于 2012-12-9 10:54:37 | 显示全部楼层
b28561173 发表于 2012-11-13 19:32
哈哈终于搞定了,原来是杜邦线间干扰,其实我以前也觉得是杜邦线间干扰,但我随意拉开杜邦线距离后没变化, ...

楼主,我有个问题想请教你一下。先讲一下背景:我们使用的是OV5640 摄像头模组,CPU是OMAP3530。我们选用的液晶屏的分辨率是1280*800,显示屏支持的图像数据是 RGB。 目前我们设置摄像头模组采集到的数据是YUV 4 2 2格式的。我想问一下:


1、ov5640的驱动我们是移植的TVP5146的驱动代码,代码写的很不完善。
2、目前我们能拍到图片,但是通过查看图片数据,发现采集到的图片信息不是Y0 U0 Y1 V0这种格式的,而是 0 Y0 0 U0 0 Y1 0 V0,整整掉了一半的图像数据数据,我们经过处理后将其转化为bmp格式的图片,拍摄效果勉强过得去。掉图像数据这个问题可是是什么设置导致的问题呢?
3、LCD 预览,我们的LCD支持的是RGB格式的图像数据,而目前我们采集到的图像数据是YUV格式的。请问是不是这个需要讲采集到的YUV图像数据转化为RGB格式才能实现预览?


你的CPU用的是STM32,可能和我们的OMAP差别很大,你能不能给出一个大致的分析?  能不能给一些参考资料,关于图像采集、LCD预览方面的资料。目前我对这个还没有一个认识,不知道怎么去分析这个问题,希望能得到你的回复。

谢谢。
头像被屏蔽

出0入0汤圆

发表于 2012-12-9 11:03:09 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

出0入0汤圆

发表于 2012-12-9 14:49:33 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2012-12-29 17:32:56 | 显示全部楼层
能不能贴个码哦?

出500入0汤圆

发表于 2012-12-29 18:06:38 来自手机 | 显示全部楼层
刚准备说id不保

出0入0汤圆

发表于 2012-12-29 18:51:40 | 显示全部楼层
b28561173 发表于 2012-11-12 19:50
这是我拍的键盘图像  能大致看出键盘的轮廓,但都彩条
这是主函数
int main(void)

还有透视功能,不错,厉害

出0入0汤圆

发表于 2013-5-14 19:30:11 | 显示全部楼层
学习了,我也试试是不是数据线之间干扰问题

出0入0汤圆

发表于 2014-1-16 17:41:36 | 显示全部楼层
wangguanfu是谁?

出0入0汤圆

发表于 2014-1-16 17:42:42 | 显示全部楼层
他的ID没在阿莫里面啊。。。。

出0入0汤圆

发表于 2014-1-16 19:34:26 | 显示全部楼层
mark                                 
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 03:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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