UCGUI移植基础篇(1)--Keil5下STM32移植及简单图形绘制

来源:互联网 发布:js onready 编辑:程序博客网 时间:2024/05/22 05:23

首先声明,本文章所写内容主要参考百度文库翟中康同学《基于STM32的UCGUI移植解析(新手入门)》,根据作者实际操作所得,仅供大家参考。

既然是做移植,开发板和液晶底层驱动大家肯定都是有的,这里不再赘述,但还有一样东西是必须要准备的---ucGUI源代码,这里,我把我用的源码给大家,有需要的可以直接下载http://pan.baidu.com/s/1eQxT3Nk。

       1)源码中有很多文件,对于仅做简单图形绘制的我们来说,很多都是用不到的,只需其中的三个文件夹即可GUI、Config、GUI_X。在你的工程文件夹下创建ucGUI文件夹,用于存放跟GUI有关的所有文件,将源代码Start文件夹下GUI和Config两个文件夹以及源代码Sample文件夹下的GUI_X文件夹复制到ucGUI,至此,本文所用到的跟ucGUI有关的全部文件已添加进入工程。

                                             

      2)创建Keil工程,相信能做移植的朋友,对此都很熟悉,具体操作不再赘述,有疑问的话可以翻看一下我之前写的操作步骤。个人习惯不同,创建的工程风格也不一样,这里,我介绍一下我的工程:

                                                   

简单介绍一下各个Group里的内容:

code:主要是main函数和启动代码,由于现在用的是Keil5,启动代码自动生成,不需要手动添加,所以code下只有main函数。

SDU:主要是自己写的各模块的函数文件,比如延时函数、定时器、中断等等,当然,本文要用到的液晶驱动就在此组(有人喜欢把液晶驱动放到LCDDriver里,纯属个人习惯,不影响ucGUI正常工作)。

Lib_F1:STM32的库函数,不用多做解释。

GUI_Config:此处需特别强调一下,为了方便,我不仅把ucGUI下Config里所有的头文件包含进去,还添加了GUI_X下GUI_X.c文件。

GUI_Core:包含ucGUI/GUI/Core下所有的.c文件(为了防止编译出现不理解的错误,把所有的.c都包含进去了)。

GUI_LCDDriver:包含ucGUI/GUI/LCDDriver下所有的.c文件。

GUI_Font:包含ucGUI/GUI/Font下所有的.c文件。

GUI_ConvertColor:包含ucGUI/GUI/ConvertColor下所有的.c文件。

GUI_Demo:此处为我自己写的GUI任务函数,同时我也将GUI_Demo文件夹添加进ucGUI。    

3)各组添加完成之后,现在就要进行底层函数和ucGUI函数的链接以及ucGUI的配置,此处对我们初学者来说,可能看起来很麻烦,但是最基本的内容其实是很简单易懂的,在此只介绍最基本的内容。

函数链接:ucGUI需要调用液晶驱动中的两个函数(写点和读点),这两个函数是我们在液晶驱动中自己写好的,只需添加到ucGUI中即可,我这两个函数分别为

void LCD_DrawPoint(u16 x,u16 y,u16 color);      uint16_t LCD_ReadPoint(u16 x,u16 y);大家的底层驱动函数名可能不同,不过无所谓,功能一样即可。

一、链接写点函数,打开GUI_LCDDriver下的LCDDummy.c文件,找到void LCD_L0_SetPixelIndex(int x, int y, int PixelIndex)函数,添加写点函数:

                                         

二、链接读点函数(本文所进行的图形绘制其实没有用到读点,不链接读操作也可以),打开GUI_LCDDriver下的LCDDummy.c文件,找到unsigned int LCD_L0_GetPixelIndex(int x, int y)函数,添加读点函数:

                                          

ucGUI配置(此处参考翟中康同学所写文章):

一、 修改GUI_Config / GUIConf.h文件

#define GUI_OS                        (0)  
#define GUI_SUPPORT_TOUCH         (0)  
#define GUI_SUPPORT_UNICODE       (0)  
#define GUI_DEFAULT_FONT          &GUI_Font6x8 
#define GUI_ALLOC_SIZE             5000  #define GUI_WINSUPPORT         (0)
#define GUI_SUPPORT_MEMDEV      (0)
#define GUI_SUPPORT_AA         (0)
其余部分不需要改动 

二、修改GUI_Config / LCDConf.h 

#ifndef LCDCONF_H 
#define LCDCONF_H 
#define LCD_XSIZE      (800)   /* 水平分辨率X-resolution of LCD, Logical coor. */ 
#define LCD_YSIZE      (480)   /* 垂直分辨率Y-resolution of LCD, Logical coor. */ 
#define LCD_BITSPERPIXEL   (16)   /*lcd 颜色深度*/ 
#define LCD_CONTROLLER    (-1)   /*lcd 控制器的具体型号*/ 
#define LCD_FIXEDPALETTE  (565)   /*RGB 颜色位数*/
#define LCD_SWAP_RB       (1)   /*红蓝反色交换*/ 
#define LCD_INIT_CONTROLLER()   TFT_LCD_Init();    /*底层初始化函数(自己写的)而非源码自带这一步非常重要*/ 
#endif /* LCDCONF_H */  
其余部分删除

至此,UCGUI的链接和配置结束,接下来即可进行简单图形绘制。

                                    


0 0
原创粉丝点击