|
没法使用函数WM_SetCreateFlags(WM_CF_MEMDEV),会导致窗口上刷新控件的时候会闪烁,看着不舒服。
而使用这个函数时,发现显示不正常。
解决办法是每100ms整体刷新一次屏幕即可,平时emWin都是直接操作OLED的显存空间(专门为其开辟一个128*64bit的显存空间)
- /*
- *********************************************************************************************************
- * 函 数 名: _cbTimer
- * 功能说明: 定时器回调函数
- * 形 参: pTM 消息指针
- * 返 回 值: 无
- *********************************************************************************************************
- */
- void _cbTimer(GUI_TIMER_MESSAGE * pTM)
- {
- switch (pTM->Context)
- {
- case 0x01:
- /* 100ms刷新一次OLED */
- OLED_EndDraw();
- /* 此函数一定要调用,设置重新启动,要不仅执行一次 */
- GUI_TIMER_Restart(pTM->hTimer);
- break;
-
- default:
- break;
- }
- }
复制代码
- /* 创建定时器 */
- hTimer = GUI_TIMER_Create(_cbTimer, /* 回调函数 */
- 1, /* 绝对时间,设置系统上电后 1ms 作为溢出时间 */
- 0x01, /* 可以认为此参数是区分不同定时器的 ID,方便多个定时使用同一个回调函数 */
- 0); /* 保留,暂时未用到 */
-
- /* 设置定时器周期为 1ms */
- GUI_TIMER_SetPeriod(hTimer, 100);
复制代码
|
|