大家好,最近我再移植uCGUI3.90a,移植基本成功了,问题是,跑GUIDEMO的时候,运行一段时间就卡死了,不动了,不知道什么原因。
另外,GUI_X.c文件中的OS_TimeMS这个变量的作用是什么?下面贴出部分代码,希望得到各位的帮助。谢谢。
main函数while循环直接调用GUIDEMO_main这个函数。
while(1)
{
LED1 = 0;
GUIDEMO_main();
LED1 = 1;
}
GUIConf.h文件中的代码
#define GUI_OS (0)
#define GUI_SUPPORT_TOUCH (0)
#define GUI_SUPPORT_UNICODE (1)
#define GUI_DEFAULT_FONT &GUI_Font6x8
#define GUI_ALLOC_SIZE 40*1024
#define GUI_WINSUPPORT 1
#define GUI_SUPPORT_MEMDEV 1
#define GUI_SUPPORT_AA 1
LCDConf.h文件中的代码
#define LCD_XSIZE (320)
#define LCD_YSIZE (240)
#define LCD_BITSPERPIXEL (16)
#define LCD_CONTROLLER (-1)
#define LCD_FIXEDPALETTE (565)
#define LCD_SWAP_RB (1)
#define LCD_INIT_CONTROLLER() ili9341_initialize();
定时器2代码
void timer2_initialize(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);
TIM_DeInit(TIM2);
TIM_TimeBaseStructure.TIM_Period=2;
TIM_TimeBaseStructure.TIM_Prescaler=(36000-1);
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);
TIM_ClearFlag(TIM2,TIM_FLAG_Update);
TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);
TIM_Cmd(TIM2,ENABLE);
return ;
}
定时器中断代码
extern volatile int OS_TimeMS;
void TIM2_IRQHandler(void)
{
if ( TIM_GetITStatus(TIM2 , TIM_IT_Update) != RESET )
{
TIM_ClearITPendingBit(TIM2 , TIM_FLAG_Update);
OS_TimeMS++;
if(OS_TimeMS%20==0)
{
// GUI_TOUCH_Exec(); // 不带触摸不需要这条语句
}
}
}
|