//·µ»Ø1³É¹¦£¬·µ»Ø0ʧ°Ü uchar OV7670_init(void) { uchar temp; uint i=0; InitSCCB();//io init.. temp=0x80; if(0==wrOV7670Reg(0x12, temp)) //Reset SCCB { return 0 ; } delay_ms(10); for(i=0;i<CHANGE_REG_NUM;i++) { if( 0==wrOV7670Reg(pgm_read_byte( &change_reg[i][0]),pgm_read_byte( &change_reg[i][1]) )) { return 0; } } return 0x01; //ok }
//·µ»Ø1³É¹¦£¬·µ»Ø0ʧ°Ü uchar OV7670_init(void) { uint i=0; InitSCCB();//io init.. //OV2640_JpegInit(1); RCC->APB2ENR|=1<<4;//ÏÈʹÄÜÍâÉèPORTCʱÖÓ //PORTC0~13ÍÆÍìÊä³ö GPIOC->CRL = 0x88888888; GPIOC->ODR |= 0x00FF; Exit_Init(GPIOB, GPIO_Pin_8, GPIO_Mode_IPU, EXTI_Trigger_Rising, 2, 3); //VSYNC Exit_Init(GPIOB, GPIO_Pin_15, GPIO_Mode_IPU, EXTI_Trigger_Falling, 2, 4);//PICLK GpioInit(GPIOB, GPIO_Pin_14, GPIO_Mode_IPU, 0); //HREF return;//´ÓÕâÀï·µ»Ø temp=0x80; if(0==wrOV7670Reg(0x12, temp)) //Reset SCCB { return 0 ; } while(0) { rdOV7670Reg(0x1C, &temp); USART_Transmit(temp); Delay_nMS(100); } Delay_nMS(10); for(i=0;i<CHANGE_REG_NUM;i++) { if( 0 == wrOV7670Reg (change_reg[i][0],change_reg[i][1]) ) { return 0; } } return 0x01; //ok }