金牌会员
- 积分
- 1289
- 金钱
- 1289
- 注册时间
- 2014-6-15
- 在线时间
- 143 小时
|
5金钱
我首先单独在STM32上成功移植了UCOSII、UCGUI.
而且裸机移植UCGUI的时候触摸屏已经正常工作,光标随触点移动了
但是当我将UDOSII和UCGUI同时移植到STM32上之后,
能模糊看到光标会闪烁
但是不随触点移动, 这个是咋回事
我建立了四个任务,
void Task_LED(void *p_arg)
{
LED_GPIO_Config();
OSTaskCreate(Task_LCD,(void *)0,
&lcd_task_stk[LCD_TASK_STK_SIZE - 1],LCD_TASK_PRIO);
OSTaskCreate(Task_Touch,(void *)0,
&Touch_task_stk[TOUCH_TASK_STK_SIZE - 1],TOUCH_TASK_PRIO);
OSTaskCreate(Task_Check_Touch,(void *)0,
&CheckTouch_task_stk[CHECK_TOUCH_TASK_STK_SIZE - 1],CHECK_TOUCH_TASK_PRIO);
p_arg=p_arg;
while(1)
{
LED1(ON);
OSTimeDlyHMSM(0,0,0,500);
LED1(OFF);
LED2(ON);
OSTimeDlyHMSM(0,0,0,500);
LED2(OFF);
}
}
void Task_Touch(void *p_arg){
TP_Init();
p_arg=p_arg;
while(1)
{
GUI_CURSOR_Show();
OSTimeDlyHMSM(0,0,0,100);
}
}
void Task_Check_Touch(void *p_arg){
p_arg=p_arg;
while(1)
{
GUI_TOUCH_Exec();
OSTimeDlyHMSM(0,0,0,20);
}
}
void Task_LCD(void *p_arg){
GUI_Init();
GUI_SetBkColor(GUI_WHITE);
GUI_SetColor(GUI_RED);
GUI_Clear();
GUI_SetFont(&GUI_Font32B_ASCII);
GUI_DispStringAt("ColorBar - ", 0, 5);
p_arg=p_arg;
while(1)
{
GUI_DispStringAt("ColorBar - ", 0, 5);
OSTimeDlyHMSM(0,0,5,500);
}
}
此外,我改写了延时函数
//延时nus
//nus为要延时的us数.
void delay_us(u32 nus)
{
OSTimeDlyHMSM(0,0,0,1); //1MS代替us延时
}
//延时nms
//nms:要延时的ms数
void delay_ms(u16 nms)
{
OSTimeDlyHMSM(0,0,0,1);
}
没有出现死机现象,但是光标就是不会随触点移动, 能看到光标在闪烁,
这个是什么原因,
这是源码 |
最佳答案
查看完整内容[请看2#楼]
回复【2楼】 5498折戟沉沙 :
---------------------------------
误操作,直接发送了
很简单撒,因为你没有建立相应的任务进行重绘
建立一个如下的任务
while(1){
GUI_Exec();
OSTimeDlyHMSM(0,0,0,100);
}
另外你其他几个任务也有问题,修改如下
void Task_Touch(void *p_arg){
TP_Init();
p_arg=p_arg;
GUI_CURSOR_Show( ...
|