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();