电源设计技术实用资料点击免费获取>>
电子产品世界 » 论坛首页 » 企业专区 » GD32 » GD32107C-EVAL-UCOS-II+UCGUI体验

共2条 1/1 1 跳转至

GD32107C-EVAL-UCOS-II+UCGUI体验

高工
2015-04-13 22:59:56    评分

在前几次的GUI实验中,依次完成了,GUI核心部分移植,加入触屏功能,添加中文字库。这三个实验都是在裸机上运行。在裸机上跑没办法发挥GUI的最大作用,那就配上UCOS_II操作系统一起跑一跑,看是否可行,是否更爽。


将UCGUI没有移植完成的部分给添加进来:


修改GUI的配置文件:

#define GUI_OS                    (1)  /* Compile with multitasking support */
#define GUI_SUPPORT_TOUCH         (1)  /* Support a touch screen (req. win-manager) */
#define GUI_SUPPORT_UNICODE       (1)  /* Support mixed ASCII/UNICODE strings */

#define GUI_DEFAULT_FONT        &GUI_FontHZ16
#define GUI_ALLOC_SIZE          12500  /* Size of dynamic memory ... For WM and memory devices*/

/*********************************************************************
*
*         Configuration of available packages
*/

#define GUI_WINSUPPORT            1  /* Window manager package available */
#define GUI_SUPPORT_MEMDEV        1  /* Memory devices available */
#define GUI_SUPPORT_AA            0  /* Anti aliasing available */

 

支持操作系统,支持触屏功能。使能窗口管理等。

GUI_X_uCOS文件需要修改,具体的修改方式可以下载楼主的工程文件查看。

操作系统的移植也是相当方面,可以说是GD32在这方面是兼容STM32的,毕竟都是Cortex-M3核。在移植完成后,新建了一个初始任务,在初始任务中新建了3个新任务,一个是触屏检测,另外两个是显示一行文字:

void  GUI_TOUCH_TASK(void *pdata)
{
	pdata = pdata;
	for(;;)
	{
		OSTimeDly(TIMEDELAY_TOUCH);
		GUI_TOUCH_Exec();
	}
}


void  GUI_EEPW_TASK(void *pdata)
{
  u8  cFlag = 0;
	pdata = pdata;
	for(;;)
	{
		OSTimeDlyHMSM(0,0,1,0);
		GUI_DispStringAt("µç×Ó²úÆ·ÊÀ½ç--liklon",20,100);
		if(cFlag == 0)
		{
        GUI_SetColor(GUI_RED);
			  cFlag = 1;
    }
		else
		{
		    GUI_SetColor(GUI_BLUE);
			  cFlag = 0;
		}
	}
}



void  GUI_GD32_TASK(void *pdata)
{
	u8  cFlag = 0;
	pdata = pdata;
	for(;;)
	{
		OSTimeDlyHMSM(0,0,1,0);
		if(cFlag == 0)
		{
        GUI_SetColor(GUI_RED);
			  cFlag = 1;
    }
		else
		{
		    GUI_SetColor(GUI_BLUE);
			  cFlag = 0;
		}
		GUI_DispStringAt("GD32107C-EVAL-ucGUI-uCos-II",20,180);
	}
}



void  FirstTask(void *pdata)
{
	#if  OS_CRITICAL_METHOD == 3
	OS_CPU_SR cpu_sr;
	#endif
	pdata = pdata;
	OSStatInit();								 
	OS_ENTER_CRITICAL();						  
	OSTaskCreate(GUI_TOUCH_TASK,(void *)0,&stkTOUCHTask[STK_TOUCH_TASK_SIZE - 1],PRO_TOUCH_TASK);		
  OSTaskCreate(GUI_EEPW_TASK,(void *)0,&stkEEPWTask[STK_EEPW_TASK_SIZE - 1],PRO_EEPW_TASK);	
  OSTaskCreate(GUI_GD32_TASK,(void *)0,&stkGD32Task[STK_GD32_TASK_SIZE - 1],PRO_GD32_TASK);		
	OS_EXIT_CRITICAL();
	OSTaskDel(OS_PRIO_SELF);
}


int main()
{
	
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
	delay_init();
	FlashInit();
	GUI_Init();
	TouchInit();
	GUI_SetBkColor(Lcd_InfoStruct.b_color);
	GUI_SetColor(Lcd_InfoStruct.f_color);
	GUI_Clear();
  OSInit();                                             
	OSTaskCreate(FirstTask,(void *)0,&stkFirstTask[STK_FIRST_TASK_SIZE - 1],PRO_FIRST_TASK);
	OSStart();	
	while(1)
	{

         ;         

  }

}

 

整体效果图:

这样测试后感觉移植应该没有问题,,那么接下来就可以基于UCOS和UCGUI来进行设计了




关键词: GD32107C-EVAL     UCOS-II     UCG    

院士
2015-04-14 11:00:32    评分
2楼
GIF啊

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]