emwin GUI自带的定时器无法进入的解决方案

emwin GUI用emwin自带的定时器,如果用参考手册的例程时有时候存在无法进入定时器的问题,其实我们只要改一行代码就可以解决这个问题。

enmwin参考手册例程如下
static void _cbWin(WM_MESSAGE * pMsg) {
switch (pMsg->MsgId) {
case WM_TIMER:
/*
… do something …
*/
WM_RestartTimer(pMsg->Data.v, 1000);
break;
default:
WM_DefaultProc(pMsg);
}
}
static void _DemoTimer(void) {
WM_HWIN hWin;
WM_HTIMER hTimer;
hWin = WM_CreateWindow(10, 10, 100, 100, WM_CF_SHOW, _cbWin, 0);
hTimer = WM_CreateTimer(hWin, 0, 1000, 0); //待修改的语句
while (1) {
GUI_Exec();
}
}

我们只要将hTimer = WM_CreateTimer(hWin, 0, 1000, 0); 修改为 hTimer =WM_CreateTimer(WM_GetClientWindow(hWin),0,1000,0);后我们就会惊喜的发现定时器能正常工作了

你可能感兴趣的:(stm32)