stm32f1驱动ov2640问题

2019-10-14 20:47发布

我的目的主要是每次启动单片机就采集一张图片就好,只要一张就好,所以我通过改了下循环采集的函数来实现单次采集,改后的mian代码如下,但是每次采集的单张照片的数据很明显丢失了,导致采集出来的图片只要黑白照,没有颜 {MOD},基本一片黑暗,虽然采集到数据有FFD8FFD9等结束符开头。但是如果我把mian函数改为连续采集不间断的话,上位机接收到的视频是正常的,求指点迷津。
        u16 i = 0;

        ///////////////Delay3õê¼»ˉ//////////////////               
        Delay_Init(72);
        ////////////////////////////////////////////
       
        ///////////////USART13õê¼»ˉ/////////////////
        USART1_Init(115200);  

        OV2640_HW_Init();                                       
        memset(&OV2640_Camera_ID,0x0,sizeof(OV2640_IDTypeDef));


        OV2640_ReadID(&OV2640_Camera_ID);       

        OV2640_JPEGConfig(JPEG_160x120);       
        //éèÖÃ×Ô¶ˉÆØ1aoí°×ƽoa
        OV2640_BrightnessConfig(0x20);
        OV2640_AutoExposure(2);



        OV2640_CaptureGpioInit();                               
        EXTI->IMR &= ~EXTI_Line8;                               
        EXTI->EMR &= ~EXTI_Line8;       
       
        EXTI->IMR &= ~EXTI_Line15;                               
        EXTI->EMR &= ~EXTI_Line15;       
       
        Delay_nMS(10);                                                       
        EXTI->IMR |= EXTI_Line8;                               
        EXTI->EMR |= EXTI_Line8;


        Delay_nMS(100);//加了延时以等待VsyncActive == 2
       
                if(VsyncActive == 2)
                {

                        for(i = 0; i < JpegDataCnt; i ++)
                        {
                                USART_Transmit(JpegBuffer[i]);
                        }


               
                        JpegDataCnt = 0;                                               
                       
                        EXTI->IMR |= EXTI_Line8;                               
                        EXTI->EMR |= EXTI_Line8;
                               
                }

        }

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