OpenEdv-开源电子网

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

ov7670摄像头数据上传到上位机有问题

[复制链接]

1

主题

5

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2015-12-30
在线时间
5 小时
发表于 2015-12-30 20:38:28 | 显示全部楼层 |阅读模式
1金钱
原子哥,我用的ov7670摄像头采集到图像,把RGB565转成YUV提取Y分量后,通过串口上传到上位机后,显示图像是这样的: 上位机显示图片.png
模糊一片,而且上位机和显示屏显示刷新速度也很慢,就算把显示屏关掉显示依然很慢,想问下怎么回事?程序使用教程里面ov7670的改的,修改后的程序如下:
[mw_shl_code=c,true]//更新LCD显示
void camera_refresh(void)
{
        u32 j;
        u16 color,Color;       
        u16 color_r;
        u16 color_g;
        u16 color_b;
        if(ov_sta)//有帧中断更新?
        {
/*                LCD_Scan_Dir(U2D_L2R);                //从上到下,从左到右  
                if(lcddev.id==0X1963)LCD_Set_Window((lcddev.width-240)/2,(lcddev.height-320)/2,240,320);//将显示区域设置到屏幕中央
                else if(lcddev.id==0X5510||lcddev.id==0X5310)LCD_Set_Window((lcddev.width-320)/2,(lcddev.height-240)/2,320,240);//将显示区域设置到屏幕中央
                LCD_WriteRAM_Prepare();     //开始写入GRAM        */
                OV7670_RRST=0;                                //开始复位读指针
                OV7670_RCK_L;
                OV7670_RCK_H;
                OV7670_RCK_L;
                OV7670_RRST=1;                                //复位读指针结束
                OV7670_RCK_H;
                for(j=0;j<76800;j++)
                {
                        OV7670_RCK_L;
                        color=GPIOC->IDR&0XFF;        //读数据
                        OV7670_RCK_H;
                        Color=color;
                        color<<=8;  
                        OV7670_RCK_L;
                        color|=GPIOC->IDR&0XFF;        //读数据
                        OV7670_RCK_H;
/*                                        color_r = color&0xf800;
                                        color_b = color>>11;
                                        color >>=5;
                                        color_g =color&0x07e0; */                               
//                                        LCD->LCD_RAM= color_r + color_g + color_b;   
        while (!(USART1->SR & USART_FLAG_TXE));
            USART1->DR = Color;                       
                }  
    while(!USART_GetFlagStatus(USART1,USART_FLAG_TC));                 
//                ov_sta=0;                                        //清零帧中断标记
//                LCD_Scan_Dir(DFT_SCAN_DIR);        //恢复默认扫描方向
        }
}          



int main(void)
{         

        delay_init();                     //延时函数初始化          
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
        uart_init(115200);                 //串口初始化为 115200
//        LCD_Init();                                           //初始化LCD  
        OV7670_Init();
        delay_ms(10);                                                                              
        EXTI8_Init();                                                //使能定时器捕获
        OV7670_Window_Set(12,176,240,320);        //设置窗口          
          OV7670_CS=0;                                       
//        LCD_Clear(BLACK);
        while(1)
        {       
                USART1->DR=0xff;
                if(ov_sta==1)
                {
                        camera_refresh();//更新显示
                        ov_sta=0;
                }

        }          
}[/mw_shl_code]

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-12-30 23:36:56 | 显示全部楼层
回复

使用道具 举报

51

主题

1455

帖子

3

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2613
金钱
2613
注册时间
2011-1-25
在线时间
176 小时
发表于 2015-12-31 09:17:15 | 显示全部楼层
分辨率设得不对的样子。
一直努力就很好。
回复

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2015-12-31 11:15:23 | 显示全部楼层
串口的速度比较慢,图片如果数据量比较大 显示起来就很慢
回复

使用道具 举报

5

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2015-8-25
在线时间
27 小时
发表于 2015-12-31 11:35:25 | 显示全部楼层
印象中这款摄像头的波特率好像固定是9600
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2015-12-30
在线时间
5 小时
 楼主| 发表于 2015-12-31 16:51:57 | 显示全部楼层
qq942266575 发表于 2015-12-31 09:17
分辨率设得不对的样子。

修改后图像.JPG 的确,波特率貌似也要改成9600,我把上位机的行列换了一下能输出正常的,不过图像是顺时针旋转90度的,是上位机问题还是ov7670寄存器设置的问题?
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2015-12-30
在线时间
5 小时
 楼主| 发表于 2015-12-31 16:53:13 | 显示全部楼层
ricefat 发表于 2015-12-31 11:15
串口的速度比较慢,图片如果数据量比较大 显示起来就很慢

可能跟上位机处理速度也有关系,不过修改后图像还是有问题
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2015-12-30
在线时间
5 小时
 楼主| 发表于 2015-12-31 16:54:41 | 显示全部楼层
xp3539989 发表于 2015-12-31 11:35
印象中这款摄像头的波特率好像固定是9600

修改过了,分辨率也有点问题,不过修改后图片旋转了90度,不知道怎么回事? 修改后图像.JPG
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2015-12-30
在线时间
5 小时
 楼主| 发表于 2015-12-31 16:55:45 | 显示全部楼层

图像能显示了,不过显示是旋转后的图像,想问下是上位机问题还是摄像头配置问题?
回复

使用道具 举报

5

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2015-8-25
在线时间
27 小时
发表于 2015-12-31 17:39:29 | 显示全部楼层
初始化 发表于 2015-12-31 16:55
图像能显示了,不过显示是旋转后的图像,想问下是上位机问题还是摄像头配置问题?

摄像头上面应该有个调图像显示的按钮,也许时刻拨码开关,你看一下说明书,清晰度不够的问题就得问一下摄像头厂商了,这个摄像头是用的索尼协议还是PELCO-P ,PELCO-D  或者三星的协议?
回复

使用道具 举报

2

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2016-12-31
在线时间
12 小时
发表于 2017-4-5 10:20:49 | 显示全部楼层
楼主,我想要查看摄像头一帧图像数据的值,比如说通过串口打印,该怎么做?
回复

使用道具 举报

3

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2017-5-15
在线时间
16 小时
发表于 2017-9-3 00:12:03 | 显示全部楼层
楼主,请问上位机软件可以分享一下吗,谢谢
回复

使用道具 举报

4

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2016-11-9
在线时间
30 小时
发表于 2017-9-29 16:59:16 | 显示全部楼层
大哥您的上位机能否分享一下
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-8-2 05:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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