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

2019-08-13 22:22发布

原子哥,我用的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]

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
初始化
1楼-- · 2019-08-15 01:39
xp3539989 发表于 2015-12-31 11:35
印象中这款摄像头的波特率好像固定是9600

修改过了,分辨率也有点问题,不过修改后图片旋转了90度,不知道怎么回事? 修改后图像.JPG
初始化
2楼-- · 2019-08-15 04:02
 精彩回答 2  元偷偷看……
xp3539989
3楼-- · 2019-08-15 06:58
初始化 发表于 2015-12-31 16:55
图像能显示了,不过显示是旋转后的图像,想问下是上位机问题还是摄像头配置问题?

摄像头上面应该有个调图像显示的按钮,也许时刻拨码开关,你看一下说明书,清晰度不够的问题就得问一下摄像头厂商了,这个摄像头是用的索尼协议还是PELCO-P ,PELCO-D  或者三星的协议?
fkpeak
4楼-- · 2019-08-15 07:02
楼主,我想要查看摄像头一帧图像数据的值,比如说通过串口打印,该怎么做?
Jhq
5楼-- · 2019-08-15 08:39
楼主,请问上位机软件可以分享一下吗,谢谢
华中飞雪
6楼-- · 2019-08-15 10:38
大哥您的上位机能否分享一下

一周热门 更多>