jpeg数据丢失

2019-07-21 02:35发布

本帖最后由 秋丞 于 2019-4-22 10:09 编辑

u8 ov2640_jpg_photo(void)
{
u8* pbuf;
u32 i=0;

  u32 jpeglen=0;

OV2640_JPEG_Mode();

OV2640_ImageWin_Set(0,0,256,832);
OV2640_OutSize_Set(64,208);

SCCB_WR_Reg(0XFF,0X00);
SCCB_WR_Reg(0XD3,30);
SCCB_WR_Reg(0XFF,0X01);
SCCB_WR_Reg(0X11,0X1);
for(i=0;i<10;i++)  //丢弃10帧,等待OV2640自动调节好(曝光白平衡之类的)
{
  while(OV2640_VSYNC==1);  
  while(OV2640_VSYNC==0);   
}  
while(OV2640_VSYNC==1) //开始采集jpeg数据
{
  while(OV2640_HREF)
  {  
   while(OV2640_PCLK==0);
   ov2640_framebuf[jpeglen]=OV2640_DATA;
   while(OV2640_PCLK==1);  
   jpeglen++;
  }
}  

{
   pbuf=(u8*)ov2640_framebuf;
  jpelen=jpeglen;

}
  
  for(i=0;i<jpeglen;i++)
{

  USART_SendData(USART1,pbuf);
  delay_ms(2);
//x++;
}
}



我照着原子的程序改了一下(因为要配合我弄的毕设)可是这样,数据平均少了300个字节正常应该是2048,请问我这里改的应该没错吧。少的字节是每隔几个就少一个有一定的规律。
而且每当我减少几个变量的时候会好一点,一开始是1000字节来着,这我已经改过好几次了,就是无法达到原子的稳定性。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
秋丞
2019-07-21 14:02
我一开始怀疑是内存的问题可是我设置了10k的内存空间
ov2640_framebuf=mymalloc(SRAMIN,10*1024);//申请帧缓存
        while(!ov2640_framebuf)        //内存分配出错
        {            
                //LCD_ShowString(30,150,240,16,"内存分配失败!",16);
                delay_ms(200);                                  
                //LCD_Fill(30,150,240,146,WHITE);//清除显示             
                delay_ms(200);                                  
        }                                                          

一周热门 更多>