OpenEdv-开源电子网

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

关于摄像头初始化函数错误的一点说明

[复制链接]

5

主题

24

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
366
金钱
366
注册时间
2016-6-2
在线时间
46 小时
发表于 2016-12-6 21:42:01 | 显示全部楼层 |阅读模式
        OV2640_PWDN=0;        //POWER ON
        delay_ms(10);
        OV2640_RST=0;        //复位OV2640
        delay_ms(10);
        OV2640_RST=1;        //结束复位
    SCCB_Init();                        //初始化SCCB 的IO口         
        SCCB_WR_Reg(OV2640_DSP_RA_DLMT, 0x01);        //操作sensor寄存器
        SCCB_WR_Reg(OV2640_SENSOR_COM7, 0x80);        //软复位OV2640
        delay_ms(50);
        reg=SCCB_RD_Reg(OV2640_SENSOR_MIDH);        //读取厂家ID 高八位
        reg<<=8;
        reg|=SCCB_RD_Reg(OV2640_SENSOR_MIDL);        //读取厂家ID 低八位
        if(reg!=OV2640_MID)
        {
                printf("MID:%d\r\n",reg);
                return 1;
        }
        reg=SCCB_RD_Reg(OV2640_SENSOR_PIDH);        //读取厂家ID 高八位
        reg<<=8;
        reg|=SCCB_RD_Reg(OV2640_SENSOR_PIDL);        //读取厂家ID 低八位
        if(reg!=OV2640_PID)
        {
                printf("HID:%d\r\n",reg);
                //return 2;
        }   
        //初始化 OV2640,采用SXGA分辨率(1600*1200)  
        for(i=0;i<sizeof(ov2640_sxga_init_reg_tbl)/2;i++)
        {
                   SCCB_WR_Reg(ov2640_sxga_init_reg_tbl[0],ov2640_sxga_init_reg_tbl[1]);
        }
          return 0x00;         //ok
这是摄像头实验的初始化函数例程的原码,我第一次测试的时候发现即使插上摄像头也总是在LCD屏幕上显示err,我刚开始以为是摄像头的硬件问题于是我找了客服,他给了我一段代码我试验成功了,于是我对比着找两段代码的不同,终于发现了就是这个return 2 语句的问题,因为程序里面读出来的PID是9793和程序中宏定义的OV2640_PID不一样,所以就总是返回2也就总是初始化不成功,在main函数里面陷入死循环。我觉得原子哥有必要改一下或者声明一下,免得像我这样的新手耽误时间,谢谢大家!

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

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-3-1 20:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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