新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > uC/GUI在ARM 内核S3C44B0X的移植实例

uC/GUI在ARM 内核S3C44B0X的移植实例

作者:时间:2011-12-04来源:网络收藏

3.2 uC/GUl步骤

在使用时,可以按照以下几个步骤来进行:

(1)按照需要,定制;

(2)指定硬件设备的地址,编写接口驱动代码;

(3)编译、链接、调试例子程序;

(4)修改例子程序,并测试增加需要的功能;

(5)编写自己的应用程序。

3.3 具体实现

(1)首先介绍的目录结构和基本配置。

uC/GUI主要目录如下:

GUI/ConvertMono 使用黑白显示设备时,所要使用的灰度转换函数

GUI/ConvertColor 使用彩色显示设备时,使用的色彩转换函数

GUI/Config 包含了对uC/GUI进行配置的一些文件

GUI/Core uC/GUI核心代码

GUI/Font uC/GUI与字体相关的代码文件

GUI/LCDDriver LCD驱动代码文件

GUI/MemDev 内存设备支持文件代码

GUI/Touch 输入设备支持的文件代码

GUI/Widget uC/GU1支持的控件代码,包括编辑框、列表框、按钮和选择框等

GUI/WM uC/GUI窗口管理部分代码

(2)修改uC/GUI,使之适于

在ADS环境中新建一个工程,将上述gui文件夹下的所有文件加入工程。

将Config文件夹下的3个文件GUIConf.h、

GUITouchConf.h和LCDConf.h加入新工程,如下修改LCDConf.h的内容:

C程序

/*LCDConf.h*/

#ifndef LCDCONF_H

#define LCDCONF_H

#define LCDG4 //lcd颜色数,必须定义,LCDMONO(单色),LCDG4(四级灰度),LCDG16(16级灰度)

#define LCD_XSIZE(640) /* LCD水平分辨率 */

#define LCD_YSIZE(480) /* LCD垂直分辨率 */

#define LCD BITSPERPIXEL(8)

#endif /*LCDC0NF_H*/

/*以下是 LCD控制器的配置*/

#include ..incoption.h

#define SCR_XSIZE (640) //视窗屏幕大小

#define SCR_YSIZE (480)

#define LCD_XSIZE (640) //液晶屏幕大小

#define LCD_YSIZE (480)

#define M5D(n)((n)0x1fffff)

#define ARRAY_SIZE_G4(SCR_XSIZE/4*SCR_YSIZE)

#define HOZVAL (LCD_XSIZE/4-1)

#define HOZVAL_COLOR (LCD_XSIZE*3/8-1)

#define LINEVAL (LCD_YSIZE-1)

#define MVAL (13)

#define CLKVAL_G4 (10)

#define MVAL_USED 0

#endif /*LCDCONF_H */

(3)加载LCD驱动。

LCD驱动程序如前面所述,保存在lcd44b0.c中。出了底层的初始化函数LCD_Init_Controler()以外,还需要做以下修改,这里只提关键部分。

主要进行相关的寄存器配置,以及和GUI的接口程序。这里只提及关键部分。

① 定义显示缓冲区时使用的char数据类型,它是8bit的:

unsigned char Bmp[ARRAY_SIZE_G16];//液晶显示缓冲数组

② 定义读写缓冲区时使用的数据类型,也是8bit的U8:

#define LCD_READ_MEM (Off)*((U8*)(frameBuffer256+(((U32)(Off)))))

#define LCD_WRRITE_MEM(Off,data)*((U8*)frameBuffer256+(((U32)(Off)))))=data

#define LCD_WRITE_REG(Off,data)

⑧ 定义液晶总线宽度定义位8bit:

#ifndef LCD_BUSWIDTH

#define LCD_BUSWIDTH(8)

#endif

④ 定义字节顺序:

#define LCD_SWAP_BYTE_ORDER(0)

至此uC/GUI的基本上已经完成了。当然这里只提供了移植的关键部分,更多更完整的移植还需要做不少的工作,如触控屏的移植、键盘鼠标的移植以及中文字体的移植等。详情请参阅uC/GUI手册中Getting Started一章。

4、数据显示程序设计

数据显示程序主要是基于uC/GUI平台的GUI函数库,完成字符、曲线的绘制。与画线相关的GUI函数有:

GUI DrawHLine()

原型:void GUI_DrawLine(int x0,int y0,int x1,int y1);

其中,x0、y0、x1、y1分别为UGI坐标系下的起点和终点的横坐标和纵坐标。

GUI DispDec()

原型:void GUI_DispDec(I32 v,U8 Len);

其中,v为要显示的十进制变量值,Len为要显示的数据的位数。

5、总结

本文主要介绍了基于7和L78C64液晶模块硬件平台的uC/GUI的移植,以及在工程上的应用,经过实际应用发现,uC/GUI功能强大,响应迅速,稳定性高,具有广泛的应用前景。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭