- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UCGUI移植
移植UCGUI只需要修改3个文件:GUIConf.h,LCDConf.h,LCDDummy.c,并从源代码的Sample/GUI_X文件夹下复制GUI_X.c文件到工程的GUILib/Config目录下
GUIConf.h
刚开始移植的时候是没有RTOS的,LCD也不是触摸屏,所以GUI_OS和GUI_SUPPORT_TOUCH都定义为0,其他宏不需要修改
LCDConf.h
LCD_XSIZE、LCD_YSIZE和LCD_BITSPERPIXEL根据开发板LCD的配置定义,我用的屏的分辨率是480*272的,16位RGB;
LCD_CONTROLLER必须定义成-1,表示使用自己定义的LCD驱动,这个LCD驱动是通过修改LCDDummy.c模板来实现的,因为LCDDummy.c中开始部分要判断宏LCD_CONTROLLER是否等于-1,如果不等于-1,LCDDummy.c中的内容不会被编译,当然LCD_CONTROLLER也可以定义成其他植,但和LCDDummy.c中一定要对应起来,而且不能等于UCGUI自带的LCD驱动号
LCD_ON和LCD_OFF一定要定义,因为LCDDummy.c中的LCD_On()和LCD_Off()函数先判断相应的宏是否被定义,如果没定义则不会执行函数体中的内容
UCGUI的初始化过程中的LCD部分是通过GUI_Init()(GUICore.c)-LCD_Init()(LCD.c)-LCD_L0_Init()(LCD_Dummy.c)实现的,因为LCDDummy.c中的LCD初始化函数LCD_L0_Init()调用LCD_INIT_CONTROLLER()宏来调用自定义的LCD初始化函数,所以要将宏LCD_INIT_CONTROLLER()定义成自定义的LCD初始化函数GLCD_Init()。也可以在不用修改LCD_INIT_CONTROLLER()宏,而是在LCD_L0_Init()直接调用GLCD_Init()
LCDDummy.c
LCDDummy.c文件中需要修改的函数有:
1)、void LCD_L0_SetPixelIndex(int x, int y, int PixelIndex)
2)、void LCD_L0_GetPixelIndex(int x, int y)
3)、void LCD_On(void)
4)、void LCD_Off(void)
5)、int LCD_L0_Init(void)
修改如下:
其中395行的SetPixelIndex函数,422行的GetPixelIndex函数,536行的GLCD_On函数,542行GLCD_Off函数都是自己在LCD驱动文件中定义的函数,LCD_INIT_CONTROLLER()也被定义成LCD驱动文件中的LCD初始化函数
LCD驱动文件
1)、头文件drv_glcd.h:
#include lpc_types.h
#include sdram_mt48lc2m32lfb5.h
#ifndef __GLCD_DRV_H
#define __GLCD_DRV_H
#define C_GLCD_PIX_CLK 9000000
#define C_GLCD_REFRESH_FREQ (50HZ)
#define C_GLCD_H_SIZE 480
#define C_GLCD_H_PULSE 41
#define C_GLCD_H_FRONT_PORCH 2
#define C_GLCD_H_BACK_PORCH 2
#define C_GLCD_V_SIZE 272
#define C_GLCD_V_PULSE 10
#define C_GLCD_V_FRONT_PORCH 2
#define C_GLCD_V_BACK_PORCH 2
#define LCD_RED 0xf800 /* red color */
#define LCD_GREEN 0x07e0 /* green color */
#define LCD_BLUE 0x001f /* blue color */
#define LCD_
文档评论(0)