0V2640 双缓存保存到外部SRAM,出现奇怪问题

2019-07-20 02:12发布

最近要用F4做图像处理,因为图像太大所以用了双缓冲。程序是根据原子哥的照相机实验改的,就是在保存jpg格式图片的时候仍然让2640输出rgb565格式的数据。
2640和LCD都已经设置到了320x240的分辨率。

拍照以后再把外部SRAM保存的图片数据回送到LCD上,却出现了下面的奇怪情况:
大部分图片上移了一截,只有最下面一条是正常的。

现在我有两个问题:
1.根据我的理解,应该是外部SRAM里320x240x2个字节是我拍下来的图片,目前我也是这样输出的,有错吗?
2.我输出的数据是外部SRAM里最后连续的320x240x2个字节,为什么会出现图片上移而最后一段又是对的这种情况呢?


还望原子哥和各位过路大侠指点啊!!感激不尽!!!


附上外部SRAM送LCD显示的部分代码
[mw_shl_code=c,true]LCD_Clear(WHITE);
//printf("%d",0xff);
LCD_WriteRAM_Prepare();
pbuf=(u16*)jpeg_data_buf;
for(i=0;i<320*240;i++)
{
        //printf("%d",pbuf[jpeg_data_len*4-320*240*2+i]);
        LCD->LCD_RAM=pbuf[jpeg_data_len*2-320*240+i];
        //LCD->LCD_RAM=pbuf;
}
jpeg_data_ok=0;                                       
//                        jpeg_data_len=0;                               
        jpeg_data_len=0;[/mw_shl_code]
附图:
拍照前直送LCD的正常画面 拍照前直送LCD的正常画面 拍照后外部SRAM送LCD的奇怪画面 拍照后外部SRAM送LCD的奇怪画面

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