UCGUI学习之路(5)MemDev

LCD液晶屏上有动画的时候,一般都需要高频刷新屏幕。
如果不使用MemDev,而按传统方法做动画效果,屏幕会闪烁,效果不好。
MemDev的使用是为了上述情况引起的闪烁。
其原理在于,先把这一帧到下一帧的显示过程在内存中预演。把生成的最终结果,再刷新到屏幕上。这样一来屏幕的显示内容变化次数降到最低。直接输出需要显示的内容。有效的避免了闪烁。

我也做了个实验,在一块屏幕上,对比两种效果,一目了然。

UCGUI学习之路(5)MemDev_第1张图片

视频演示如下:

http://v.youku.com/v_show/id_XMzEyMTY2MTc0NA==.html?spm=a2h0k.8191407.0.0&from=s1.8-1-1.2

MemDev在代码中的使用也很简单:

  • 创建GUI_MEMDEV_Create();
  • 选择GUI_MEMDEV_Select();
  • 界面修改过程
  • 显示GUI_MEMDEV_CopyToLCD();
  • 清楚GUI_MEMDEV_Clear();
  • 如果不使用了,就删除GUI_MEMDEV_Delete();

源码关键部分:

    GUI_MEMDEV_Handle mh;//申请一个变量放句柄

    mh = GUI_MEMDEV_Create(0, 30, 240, 145);
    GUI_MEMDEV_Select(mh);//选择使用

    GUI_SetColor(GUI_RED);//这5行是改变过程
    GUI_FillCircle(posx,90,30);
    GUI_SetColor(GUI_YELLOW);
    GUI_SetTextMode(GUI_TEXTMODE_TRANS);
    GUI_DispStringAt("Hello World",20,70);

    GUI_MEMDEV_CopyToLCD(mh);//把上述过程的结果输出
    GUI_MEMDEV_Clear(mh);//清除内存

你可能感兴趣的:(UCGUI)