STM32F407+ov7725显示花屏噪声很大

2019-07-20 02:21发布

初始化没问题,摄像头对外界变化也有响应。但只有仔细看才能看出图像,很模糊而且好像屏幕被分成了三份显示。具体情况图片和程序在下面。//¸üDÂLCDÏÔê¾(OV7725)
void OV7725_camera_refresh(void)
{
        u32 i,j;
        u16 color;         
        if(ov_sta==2)//óDÖ¡ÖD¶Ï¸üDÂ
        {
                LCD_Set_Window(0,(tftlcd_data.height-240)/2,320-1,240-1);//½«ÏÔê¾ÇøóòéèÖÃμ½ÆáÄ»ÖDÑë
                OV7725_RRST=0;                                //¿a꼸′λ¶áÖ¸Õë
                OV7725_RCK_L;
                OV7725_RCK_H;
                OV7725_RCK_L;
                OV7725_RRST=1;                                //¸′λ¶áÖ¸Õë½áêø
                OV7725_RCK_H;
                for(i=0;i<240;i++)
                {               
                        for(j=0;j<320;j++)
                        {
                                OV7725_RCK_L;
                                color=OV7725_DATA;        //&#182;áêy&#190;Y
                                OV7725_RCK_H;
                                color<<=8;  
                                OV7725_RCK_L;
                                color|=OV7725_DATA;        //&#182;áêy&#190;Y
                                OV7725_RCK_H;
                                LCD_WriteData_Color(color);
                        }
                }
                ov_sta=0;                                        //&#199;&#229;á&#227;&#214;&#161;&#214;D&#182;&#207;±ê&#188;&#199;
        }
}

int main()
{       
        u8 i=0;
        SysTick_Init(168);
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //&#214;D&#182;&#207;ó&#197;&#207;è&#188;&#182;·&#214;×é ·&#214;2×é
        LED_Init();
        USART1_Init(9600);
        TFTLCD_Init();                        //LCD3&#245;ê&#188;&#187;ˉ
        FRONT_COLOR=BLACK;
        LCD_ShowString(10,10,tftlcd_data.width,tftlcd_data.height,12,"Hello World!");
       
        while(1)
        {
        if(OV7725_Init()==0)
                {
                        LCD_ShowString(30,230,200,16,16,"OV7725 Init OK");
                        OV7725_Window_Set(OV7725_WINDOW_WIDTH,OV7725_WINDOW_HEIGHT,1);//QVGA&#196;£ê&#189;ê&#228;3&#246;                       
                        OV7725_Light_Mode(1);//1a&#213;&#213;&#196;£ê&#189;3
                        OV7725_Color_Saturation(2);//±¥oí&#182;è
                        OV7725_Brightness(1);//áá&#182;è
                        OV7725_Contrast(2);//&#182;&#212;±è&#182;è
                        OV7725_Special_Effects(0);//éè&#214;&#195;ì&#216;D§3
                        OV7725_CS=0;//ê1&#196;üov7725
                        break;
                }
                else
                {
                        LCD_ShowString(30,230,200,16,16,"OV7725 Error!!");
                        delay_ms(200);
                        LCD_Fill(30,230,239,246,WHITE);
                        delay_ms(200);
                }
        }
        EXTI7_Init();                //ê1&#196;ü&#182;¨ê±&#198;÷2&#182;&#187;&#241;       
        LCD_Clear(BLACK);
        LCD_ShowString(30,280,200,16,16,"OV7725 OK!!");
        while(1)
        {       
                OV7725_camera_refresh();//&#184;üD&#194;&#207;&#212;ê&#190;
                i++;
                if(i%20==0)
                {
                        led1=!led1;
                }
        }                          
}

//ía2&#191;&#214;D&#182;&#207;5~9·t&#206;&#241;3ìDò
void EXTI9_5_IRQHandler(void)
{                                
        if(EXTI_GetITStatus(EXTI_Line7)==SET)                //ê&#199;8&#207;&#223;μ&#196;&#214;D&#182;&#207;
        {      
                if(ov_sta<2)
                {
                        if(ov_sta==0)
                        {
                                OV7725_WRST=0;         //&#184;′&#206;&#187;D′&#214;&#184;&#213;&#235;                 
                                OV7725_WRST=1;       
                                OV7725_WREN=1;         //&#212;êDíD′è&#235;FIFO          
                        }
                        else OV7725_WREN=0;   //&#189;&#251;&#214;1D′è&#235;FIFO
                        ov_sta++;                      //&#214;&#161;&#214;D&#182;&#207;&#188;ó1
                }
        }
        EXTI_ClearITPendingBit(EXTI_Line7);  //&#199;&#229;3yEXTI8&#207;&#223;&#194;·1ò&#198;e&#206;&#187;                                                  
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。