Ejemplo n.º 1
0
/**
 *  @name	FIFO_GPIO_Config
 *  @brief	配置OV7670的FIFO芯片引脚
 *  @param  None        
 *  @return None
 *  @notice
 */
static void FIFO_GPIO_Config(void)
{
	CKCU_PeripClockConfig_TypeDef CKCUClock = {{0}};

	/* Enable PB */
	CKCUClock.Bit.PB         = 1;
	CKCU_PeripClockConfig(CKCUClock, ENABLE);
	
	/* 配置为输出引脚 */
	GPIO_DirectionConfig(HT_GPIOB, 
							GPIO_PIN_0	| 	/* PB0,STROBE,闪光灯控制 		*/ 
							GPIO_PIN_2	|	/* PB2,FIFO_WRST,FIFO写复位 	*/
							GPIO_PIN_3	|	/* PB3, FIFO_RRST,FIFO读复位 	*/
							GPIO_PIN_4	|	/* PB4,FIFO_OE,FIFO输出使能 	*/
							GPIO_PIN_5	|	/* PB5,FIFO_RCK,FIFO读时钟 	*/
							GPIO_PIN_6		/* PB6,FIFO_WE,FIFO写使能 	*/
		, GPIO_DIR_OUT);
	
	/* 配置PB8~PB15为输入引脚,用于FIFO数据采集输入 */
	GPIO_DirectionConfig(HT_GPIOB,       
							GPIO_PIN_8	| GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11	|
							GPIO_PIN_12	| GPIO_PIN_13| GPIO_PIN_14 | GPIO_PIN_15
			, GPIO_DIR_IN);
	
	GPIO_InputConfig(HT_GPIOB,       
							GPIO_PIN_8	| GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11	|
							GPIO_PIN_12	| GPIO_PIN_13| GPIO_PIN_14 | GPIO_PIN_15
			, ENABLE);
	
	FIFO_CS_L();	  					/*拉低使FIFO输出使能*/
    FIFO_WE_H();   						/*拉高使FIFO写允许*/
}
Ejemplo n.º 2
0
void EXTI0_IRQHandler(void)
{
    if ( EXTI_GetITStatus(EXTI_Line0) != RESET ) 	//检查EXTI_Line0线路上的中断请求是否发送到了NVIC 
    {
        if( Ov7725_vsync == 0 )
        {
            FIFO_WRST_L(); 	                      //拉低使FIFO写(数据from摄像头)指针复位
            FIFO_WE_H();	                        //拉高使FIFO写允许
            
            Ov7725_vsync = 1;	   	
            FIFO_WE_H();                          //使FIFO写允许
            FIFO_WRST_H();                        //允许使FIFO写(数据from摄像头)指针运动
        }
        else if( Ov7725_vsync == 1 )
        {
            FIFO_WE_L();                          //拉低使FIFO写暂停
            Ov7725_vsync = 2;
        }        
        EXTI_ClearITPendingBit(EXTI_Line0);		    //清除EXTI_Line0线路挂起标志位        
    }    
}
Ejemplo n.º 3
0
/************************************************
 * 函数名:FIFO_GPIO_Config
 * 描述  :FIFO GPIO配置
 * 输入  :无
 * 输出  :无
 * 注意  :无
 ************************************************/
static void FIFO_GPIO_Config(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
    RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | 
	                          RCC_APB2Periph_GPIOB | 
	                          RCC_APB2Periph_GPIOC | 
	                          RCC_APB2Periph_GPIOD |
                            RCC_APB2Periph_AFIO	, ENABLE);
	
		GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;
	  GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
	  GPIO_Init (GPIOC,&GPIO_InitStructure);
	  GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource13); 
	
    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;	

		/* 1W LED 灯控制 */
//	  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
//    GPIO_Init(GPIOA, &GPIO_InitStructure);
//		GPIO_ResetBits(GPIOA, GPIO_Pin_8);
//		GPIO_SetBits(GPIOA, GPIO_Pin_8);
	
		/*PD3(FIFO_WEN--FIFO写使能)*/
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
    GPIO_Init(GPIOD, &GPIO_InitStructure);
	
		/*PB5(FIFO_WRST--FIFO写复位)*/
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
	
		/*PA2(FIFO_RRST--FIFO读复位) PA3(FIFO_OE--FIFO输出使能)*/
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3;
    GPIO_Init(GPIOA, &GPIO_InitStructure); 

		/*PC5(FIFO_RCLK-FIFO读时钟)*/
		GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
    GPIO_Init(GPIOC, &GPIO_InitStructure);

    /*PB8-PB15(FIFO_DATA--FIFO输出数据)*/
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

    FIFO_CS_L();	  					/*拉低使FIFO输出使能*/
    FIFO_WE_H();   						/*拉高使FIFO写允许*/
}