OpenEdv-开源电子网

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

1052开发板接OV2640摄像头

[复制链接]

9

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2012-9-23
在线时间
33 小时
发表于 2019-1-12 12:31:11 | 显示全部楼层 |阅读模式
5金钱
1052开发板接OV2640摄像头,参考OV5640代码
SCCB读写寄存器无响应。。。。

//OV5640写寄存器
//返回值:0,成功;1,失败.
u8 OV2640_WR_Reg(u16 reg,u8 data)
{
    u8 res=0;
    status_t status;

    status=SCCB_WR_Byte(OV2640_ADDR,kSCCB_RegAddr8Bit,reg,data);
    if(status!=kStatus_Success)
        res=1;          
          return        res;
}
//OV5640读寄存器
//返回值:读到的寄存器值
u8 OV2640_RD_Reg(u16 reg)
{
        u8 val=0;
    val=SCCB_RD_Byte(OV2640_ADDR,kSCCB_RegAddr8Bit,reg);
          return val;
}
//设置摄像头模块PWDN脚的状态
//sta:0,PWDN=0,上电.
//    1,PWDN=1,掉电
void OV2640_PWDN_Set(u8 sta)
{
        PCF8574_WriteBit(DCMI_PWDN_IO,sta);
}
//初始化OV2640
//配置完以后,默认输出是1600*1200尺寸的图片!!
//返回值:0,成功
//    其他,错误代码
u8 OV2640_Init(void)
{
        u16 i=0;
        u16 reg;

        gpio_pin_config_t csi_config;

        MYCSI_Init();                                           //初始化CSI

        PCF8574_Init();                        //初始化PCF8574

        //设置RESET引脚设置GPIO_B1_11
        IOMUXC_SetPinMux(IOMUXC_GPIO_B1_11_GPIO2_IO27,0);                //RESET  
        IOMUXC_SetPinConfig(IOMUXC_GPIO_B1_11_GPIO2_IO27,0x10B0);

        csi_config.direction=kGPIO_DigitalOutput;        //输出
        csi_config.interruptMode=kGPIO_NoIntmode;        //不使用中断功能
        csi_config.outputLogic=1;                                        //默认高电平
        GPIO_PinInit(GPIO2,27,&csi_config);             //初始化GPIO2_27

        OV2640_RST(0);                        //必须先拉低OV5640的RST脚,再上电
        delay_ms(20);
    OV2640_PWDN_Set(0);                //POWER ON
        delay_ms(5);  
        OV2640_RST(1);                        //结束复位
        delay_ms(20);   
        LPI2C1_Init(400000);    //初始化I2C1,400K波特率
        delay_ms(5);



        OV2640_WR_Reg(OV2640_DSP_RA_DLMT, 0x01);        //操作sensor寄存器
        OV2640_WR_Reg(OV2640_SENSOR_COM7, 0x80);        //软复位OV2640
        delay_ms(50);
        reg=OV2640_RD_Reg(OV2640_SENSOR_MIDH);        //读取厂家ID 高八位
        reg<<=8;
        reg|=OV2640_RD_Reg(OV2640_SENSOR_MIDL);        //读取厂家ID 低八位
        if(reg!=OV2640_MID)
        {
                printf("MID:%d\r\n",reg);
                return 1;
        }
        reg=OV2640_RD_Reg(OV2640_SENSOR_PIDH);        //读取厂家ID 高八位
        reg<<=8;
        reg|=OV2640_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++)
        {
                   OV2640_WR_Reg(ov2640_sxga_init_reg_tbl[i][0],ov2640_sxga_init_reg_tbl[i][1]);
        }
          return 0x00;         //ok
}

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

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-6-9 14:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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