OpenEdv-开源电子网

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

OV7725与LCD方向不匹配问题,

[复制链接]

2

主题

3

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2019-1-27
在线时间
8 小时
发表于 2019-9-2 09:35:14 | 显示全部楼层 |阅读模式
摄像头和LCD程序是改的原子的例程,OV7725QVGA模式下LCD横屏时才能正常显示(如图1),竖屏出现斜杠(图2),但摄像头开VGA模式下LCD竖屏又能够正常显示,LCD是2.8寸240*320,改过LCD扫描方向和对调摄像头起始坐标等都没有成功,研究了几天,实在没法了,希望各位大佬帮忙指点指点。
//OV7725摄像头测试
void OV7725_Test(void)
{
        LCD_Clear(WHITE);        
        DCMI_Init();//DCMI配置        
        DCMI_DMA_Init((u32)&LCD->LCD_RAM,0,1,DMA_MDATAALIGN_HALFWORD,DMA_MINC_DISABLE);

//        LCD_Display_Dir(1);        //1横屏 从上到下,从左到右  OK
//        OV7725_Window_Set(320,240,0);//QVGA模式输出        
        
//        LCD_Display_Dir(1);        //2横屏 从上到下,从左到右  OK
//        OV7725_Window_Set(320,240,1);//VGA模式输出        
        
        LCD_Display_Dir(0);//竖屏
        OV7725_Window_Set(240,320,0);//3竖屏QVGA模式输出  NO!
        
//        LCD_Display_Dir(0);//竖屏
//        OV7725_Window_Set(240,320,1);//4竖屏VGA模式输出        OK

        DCMI_Start(); //启动传输
        while(1)
        {

           DCMI_Stop(); //停止显示
           LCD_ShowString(50,60,240,320,16,"OV7725");
           DCMI_Start(); //启动传输               
          delay_ms(10);        
        }
}
        

//设置图像输出窗口
//width:图像宽度
//height:图像高度
//mode:0,QVGA输出模式;1,VGA输出模式
//QVGA模式可视范围广但近物不是很清晰,VGA模式可视范围小近物清晰
void OV7725_Window_Set(u16 width,u16 height,u8 mode)
{
        u8 raw,temp;
        u16 sx,sy;
        
        if(mode)
        {
                if(width>640) width=640;
                if(height>480) height=480;
                sx=(640-width)/2;
                sy=(480-height)/2;
                OV7725_WR_Reg(COM7,0x06);                //设置为VGA模式
                OV7725_WR_Reg(HSTART,0x23);         //水平起始位置
                OV7725_WR_Reg(HSIZE,0xA0);         //水平尺寸
                OV7725_WR_Reg(VSTRT,0x07);         //垂直起始位置
                OV7725_WR_Reg(VSIZE,0xF0);         //垂直尺寸
                OV7725_WR_Reg(HREF,0x00);
                OV7725_WR_Reg(HOutSize,0xA0); //输出尺寸
                OV7725_WR_Reg(VOutSize,0xF0); //输出尺寸
        }
        else
        {
//                sx=(320-width)/2;//  横屏 原始
//                sy=(240-height)/2;//  or↓
                width = 240;//
                height = 320;
                sx=(240-width)/2;//   竖屏 or↑
                sy=(320-height)/2;//
                OV7725_WR_Reg(COM7,0x46);                //设置为QVGA模式
                OV7725_WR_Reg(HSTART,0x3f);         //水平起始位置
                OV7725_WR_Reg(HSIZE, 0x50);         //水平尺寸
                OV7725_WR_Reg(VSTRT, 0x03);         //垂直起始位置
                OV7725_WR_Reg(VSIZE, 0x78);         //垂直尺寸
                OV7725_WR_Reg(HREF,  0x00);
                OV7725_WR_Reg(HOutSize,0x50);        //输出尺寸
                OV7725_WR_Reg(VOutSize,0x78); //输出尺寸
        }
        raw=OV7725_RD_Reg(HSTART);
        temp=raw+(sx>>2);//sx高8位存在HSTART,低2位存在HREF[5:4]
        OV7725_WR_Reg(HSTART,temp);
        OV7725_WR_Reg(HSIZE,width>>2);//width高8位存在HSIZE,低2位存在HREF[1:0]
        
        raw=OV7725_RD_Reg(VSTRT);
        temp=raw+(sy>>1);//sy高8位存在VSTRT,低1位存在HREF[6]
        OV7725_WR_Reg(VSTRT,temp);
        OV7725_WR_Reg(VSIZE,height>>1);//height高8位存在VSIZE,低1位存在HREF[2]
        
        raw=OV7725_RD_Reg(HREF);
        temp=((sy&0x01)<<6)|((sx&0x03)<<4)|((height&0x01)<<2)|(width&0x03)|raw;
        OV7725_WR_Reg(HREF,temp);
        
        OV7725_WR_Reg(HOutSize,width>>2);
        OV7725_WR_Reg(VOutSize,height>>1);
        
        OV7725_RD_Reg(EXHCH);        
        temp = (raw|(width&0x03)|((height&0x01)<<2));        
        OV7725_WR_Reg(EXHCH,temp);        
}

图1.jpg
图2.jpg
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10566
金钱
10566
注册时间
2017-2-18
在线时间
1913 小时
发表于 2019-9-2 12:50:24 | 显示全部楼层
回复 支持 反对

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2020-3-14
在线时间
15 小时
发表于 2020-5-11 05:03:41 来自手机 | 显示全部楼层
原来横屏就可以啊。我搞了一个通宵,还是搞不清为啥竖屏只放一张照片不行,但是视频反而就行,太菜了。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-1 22:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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