UCGUI学习之路(5)MemDev

来源:互联网 发布:淘宝客刷爆款 编辑:程序博客网 时间:2024/05/22 00:35

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

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

视频截图

视频演示如下:

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);//清除内存
原创粉丝点击