初级会员 
  
	- 积分
 - 128
 
        - 金钱
 - 128 
 
       - 注册时间
 - 2012-9-23
 
      - 在线时间
 - 33 小时
 
 
 
 | 
 
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 
}  
 
 |   
 
 
 
 
 
 |