|

楼主 |
发表于 2015-10-21 15:17:05
|
显示全部楼层
谢谢大家的回复
我的程序跑Button和窗口程序都没有问题,触摸屏也工作良好,但一进入GUI_MessageBox()后,Timer线程都没有反应了,所以跟本就没有办法读触摸屏,这个阻塞我要怎么才能出来呢?GUI_MessageBox内部又被STemWin526_CM4_OS_Keil.lib封装起来了。
int main(void)
{
osTimerId touch_timer;
HAL_Init();
SystemClock_Config();
Uart_Init();
Sample_IO_Init();
osThreadDef(GUI_Thread, GUIThread, osPriorityHigh,0,15*configMINIMAL_STACK_SIZE);
osThreadCreate (osThread(GUI_Thread), NULL);
osTimerDef(Touch_Timer, TimerCallback);
touch_timer = osTimerCreate(osTimer(Touch_Timer), osTimerPeriodic, (void *)0);
osTimerStart(touch_timer,100);
osKernelStart();
while (1)
{
}
}
static void GUIThread(void const * argument)
{
Board_HW_Config();
WM_SetCreateFlags(WM_CF_MEMDEV);
GUI_Init();
if (GUI_ALLOC_GetNumFreeBytes() < RECOMMENDED_MEMORY)
{
GUI_ErrorOut("Not enough memory available.");
return;
}
GUI_Initialized = 1;
GUI_Clear();
GUI_SetColor(GUI_YELLOW);
GUI_FillRect(0,0,320,240);
GUI_Clear();
osDelay(1000);
printf("\\n================================================\\n");
GUI_MessageBox("Test TEXT","Title",GUI_MESSAGEBOX_CF_MOVEABLE);
//MESSAGEBOX_Create("Test TEXT","Title",GUI_MESSAGEBOX_CF_MODAL);
printf("\\n================================================\\n");
for(;;)
{
GUI_Exec();
osDelay(200);
}
}
static void TimerCallback(void const *n)
{
if(GUI_Initialized)
Touch_Panel_Update();
} |
|