F429驱动RGB屏DMA2D填充两张图片,第一张图片显示时两张图片各占一半

2019-07-20 09:01发布

本帖最后由 1812090658@qq.com 于 2018-3-25 22:39 编辑

硬件平台:正点原子阿波罗F429开发板,驱动800*480RGB屏,需要显示两张bmp图片,参考综合测试实验修改代码如下

//在指定位置画点.
//x,y:坐标
//color:颜 {MOD}.
void slcd_draw_point(u16 x,u16 y,u16 color)
{     
    sramlcdbuf[(800*y+x)] = color;
}
void slcd_draw_point_1(u16 x,u16 y,u16 color)
{     
    sramlcdbuf1[(800*y+x)] = color;
}

sramlcdbuf = gui_memex_malloc(480*800);    //申请1帧缓存大小
sramlcdbuf_1 = gui_memex_malloc(800*480);

pic_phy.draw_point = (void(*)(u16,u16,u32))slcd_draw_point;
ai_load_picfile("0:/PICTURE/1.bmp",0,0,lcddev.width,lcddev.height,1);//写入内存
pic_phy.draw_point=LCD_Fast_DrawPoint;

pic_phy.draw_point = (void(*)(u16,u16,u32))slcd_draw_point_1;
ai_load_picfile("0:/PICTURE/2.bmp",0,0,lcddev.width,lcddev.height,1);//写入内存
pic_phy.draw_point=LCD_Fast_DrawPoint;

LTDC_Color_Fill(0,0,799,479,sramlcdbuf);//显示该图片是出现问题,上半屏为2.bmp的下部分,下半屏为1.bmp的下半部分
LTDC_Color_Fill(0,0,799,479,sramlcdbuf_1);//该图片正确显示

不知大家是否也会出现该现象,是什么原因呢?内存申请的问题?还是显示问题?如果想开机多缓存几张图片,后期便于快速刷新,该如何处理呢?谢谢

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