UCGUI移植教程.docx_第1页
UCGUI移植教程.docx_第2页
UCGUI移植教程.docx_第3页
UCGUI移植教程.docx_第4页
UCGUI移植教程.docx_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

UCGUI在STM32上移植教程1 说明l 开发板芯片型号STM32F103VET6l 板载液晶型号ILI9341l 所需准备资料UCGUI3.90源码l 一个工程模板为了节约时间,此处所用模板为野火M3工程模板(3.5.0) 制作时间-2013-08-07 By NUAA-Kylin2 移植过程讲解2.1 首先打开工工程模板,页面如下,这个模板工程很简单2.2 在工程模板中新建两个文件夹2.2.1 命名为GUI与Mylib2.2.2 在GUI文件夹下添加以下内容l 上述图片为UCGUI3.90源码中的一些文件夹l 进入UCGUI3.90源码文件夹/Start,将Config文件夹原封不动的拷过来l 进入UCGUI3.90源码文件夹/Start/GUI文件夹,将其中所有文件夹拷过来l 在GUI文件夹下新建GUI_X文件夹,进入UCGUI3.90源码文件夹/ Sample/ GUI_X文件夹中,如果带操作系统应该拷贝GUI_X_uCOS.c,如果不带操作系统拷贝GUI_X.c,在这里我们将将GUI_X.c拷贝到新建GUI_X文件夹。2.2.3 各文件夹说明1) AntiAlias:9个C文件,主要用于抗锯齿的显示效果。2) ConvertColor:彩色显示的色彩转换支持。3) ConvertMono:(b/w)和灰度显示的色彩转换支持。4) Core:核心文件,提供了GUI基本的功能。5) Font:字库。6) JPEG:图片操作函数。7) LCDDriver:LCD驱动程序8) MenDev:Memorydevice 支持。这个东西可用在很多情况下,但最主要的功能是防止在项目重叠时,防止屏幕的闪烁。9) Widget:窗体控件库。10) WM:窗口管理库。11) Config:配置文件。12) GUI:源代码。13) GUI_X:操作系统接口函数。2.3 添加组及源文件2.3.1 将GUI文件夹下的所有文件夹添加到GROUP右键工程工程项目名选择manage components将这些组全部添加上如图2.3.2 然后除了LCDDriver以及Font不Add Files其他的都将对应文件夹下的内容添加进来原因如下:因为不同液晶需要不同的驱动,字体的话也是自行选择。完成后如下图所示2.3.3 添加头文件路径2.3.4 完成以上操作之后开始编译因编译时间较长,编译过程中将Config组下的GUIConf.h改成如下图所示,初步移植,这些功能可以先关掉,修改内容如图另外将Config组下的GUITouchConf.h改成如下图所示其他部分删掉将Config组下的LCDConf.h改成如下图所示2.3.5 编译完发现存在很多错误如下图所示,不过还好错误都是一些未定义的2.3.6 错误解决首先看第一个错误,缺少字体文件,所以右键组Font将Font文件夹下的Font6x8.c添加进组其他未定义的内容有:l LCD_L0_SetLUTEntryl LCD_L0_SetOrgl LCD_L0_SetPixelIndexl LCD_L0_DrawBitmapl LCD_L0_DrawHLinel LCD_L0_FillRectl LCD_L0_Initl LCD_L0_Onl LCD_L0_XorPixell LCD_L0_DrawVLinel LCD_L0_GetPixelIndex解决方法:在GUI/LCDDriver/目录下新建一个LCD_GUI.c文件,并添加到组LCDDriver当中,由于这些错误都是未定义的,所以我们新建这样一个文件进行定义点击菜单栏Edit选择find in files找到函数声明的位置,会发现这些定义都在LCD_protected.h当中,将他们拷贝出来,放入LCD_GUI.c文件当中l int LCD_L0_Init (void)/要有返回值,不然编译报错 可以写return 0;l void LCD_L0_SetLUTEntry (U8 Pos, LCD_COLOR color)l void LCD_L0_SetOrg (int x, int y)l void LCD_L0_SetPixelIndex(int x, int y, int PixelIndex)l void LCD_L0_DrawBitmap (int x0, int y0, int xsize, int ysize, int BitsPerPixel, int BytesPerLine, const U8 GUI_UNI_PTR * pData, int Diff, const LCD_PIXELINDEX* pTrans)l void LCD_L0_DrawHLine (int x0, int y0, int x1)l void LCD_L0_FillRect (int x0, int y0, int x1, int y1)l void LCD_L0_On (void)l void LCD_L0_XorPixel (int x, int y)l void LCD_L0_DrawVLine (int x, int y0, int y1)l unsigned int LCD_L0_GetPixelIndex (int x, int y)2.3.7 液晶驱动程序由于不同液晶的驱动程序不一样,所以直接拷贝对应液晶的驱动程序即可这里我直接拷贝野火教程中自带的液晶驱动程序bsp_ili9341_lcd.h,bsp_ili9341_lcd.c到LCDDriver文件夹的当中并添加到组LCDDriver当中并在LCD_GUI.c文件中添加下列头文件#include LCD_Private.h#include GUI_Private.h#include bsp_ili9341_lcd.h完成这些任务后就离成功不远了2.4 Mylib文件夹内容添加 2.4.1 添加自己以前编好的底层函数如我这边有添加如下函数,其实刚开始移植加不加都无所谓2.4.2 新建文件夹FSMC另外在Mylib再新建下一个文件夹FSMC进行配置,不过已经配置好了,在附件可添加函数当中,拷贝过来即可,并将内容添加到组Mylib当中(FSMC说明:FSMC(Flexible Static Memory Controller,可变静态存储控制器)是STM32系列中内部集成256 KB以上FlaSh,后缀为xC、xD和xE的高存储密度微控制器特有的存储控制机制。之所以称为“可变”,是由于通过对特殊功能寄存器的设置,FSMC能够根据不同的外部存储器类型,发出相应的数据/地址/控制信号类型以匹配信号的速度,从而使得STM32系列微控制器不仅能够应用各种不同类型、不同速度的外部静态存储器,而且能够在不增加外部器件的情况下同时扩展多种不同类型的静态存储器,满足系统设计对存储容量、产品体积以及成本的综合要求。)最后组视图如下:在main函数当中添加头文件说明#includ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论