在MDK环境下将3.90版本的UCGUI移植到STM32下了,为了方便大家,特写此移植方法,大家可以借鉴(有错误之处,望大家指点出来共同讨论!)
移植步骤:
第一步:首先,得把你的TFT底层驱动写好,既在裸机下,可以正常显示。
第二步:加入UCGUI程序包。
第三步:配置LCDConf.h GUIConf.h GUITouchConf.h(由于我的液晶不带触摸功能,此配置在此不讲。)
配置LCDConf.h文件如下:
#ifndef LCDCONF_H
#define LCDCONF_H
#define LCD_XSIZE (160) //配置TFT的水平分辨率
#define LCD_YSIZE (128) //配置TFT的垂直分辨率
#define LCD_CONTROLLER (54124) //TFT控制器的名称
#define LCD_BITSPERPIXEL (16) //每个像素的位数
#define LCD_FIXEDPALETTE (565) //调色板格式
#define LCD_SWAP_RB (0) //红蓝反色交换
#define LCD_INIT_CONTROLLER() TFT_Init() ; //此处需要定义的是你的TFT初始化函数
#endif /* LCDCONF_H */
配置GUIConf.h文件如下:
#ifndef GUICONF_H
#define GUICONF_H
#define GUI_OS (1) //多任务
#define GUI_SUPPORT_TOUCH (0) //触摸
#define GUI_SUPPORT_UNICODE (1) //Unicode支持
#define GUI_DEFAULT_FONT &GUI_Font6x8 //GUI默认字体
#define GUI_ALLOC_SIZE 5000 //动态内存的大小
#define GUI_WINSUPPORT 1 //窗口控件支持
#define GUI_SUPPORT_MEMDEV 1 //支持内存设备
#define GUI_SUPPORT_AA 1 /* Anti aliasing available */
#endif /* Avoid multiple inclusion */
第四步:最关键的一步。那就是让GUI能够找到你的LCD驱动。修改LCDDriver。
在编写你的TFT底层驱动程序的时候,一定不能忘记编写这两个函数:设置一个像素和获取一个像素的颜色,因为后面很多UCGUI和你的TFT驱动关联起来需要这两个函数为前提。以我的TFT为例:
void LCD_SetPixel(unsigned short x, unsigned short y, unsigned short color)
{
….
…
}
unsigned short LCD_GetPixel(unsigned short x, unsigned short y)
{
…
…
}
这两个函数写好,并测试可以正常显示后,接下来需要修改TFT与UCGUI关联的函数(在一个C文件下(我的是ili9320_ucgui.c),建议大家在移植GCGUI之前最好下载个别人移植好的例程,对着修改这样难度降低很多):
int LCD_L0_Init(void)
{
TFT_Init();
return 0;
}
这个函数,是GCGUI初始化TFT需要调用的,里面的函数就是你TFT底层驱动的初始化函数。
void LCD_L0_SetPixelIndex(int x, int y, int PixelIndex)
{
LCD_SetPixel(x,y,PixelIndex);
}
unsigned int LCD_L0_GetPixelIndex(int x, int y)
{
return LCD_GetPixel(x,y);
}
上面两个函数是其他函数的最基本元素,其他函数比如画线、点、圆都需要调用改函数。里面的LCD_SetPixel(x,y,PixelIndex)、LCD_GetPixel(x,y);就是你TFT底层驱动设置像素和获取像素的两个函数。
紧接着把该ili9320_ucgui.c文件下其他函数修改一下(凡是遇到设置像素和获取像素的地方用以上两个函数代替。)
接着,修改另一个C文件(ili9320_api.c)这里修改很简单,仅仅也是将设置像素和获取像素的函数替换掉自己定义的即可。
最后,网上说需要修改那个GUI_X.c文件,由于我下载的是STM32模板(ILI9320的控制器),那个文件没有修改。
PS:我的开发环境MDK3.4以上版本,CPU:STM32F103RB TFT与MCU接口:模拟总线8位 1.8英寸 160×128分辨率的TFT
UCGUI版本3.90 UCOS版本2.86 在原基础上仅仅修改了以下几个文件:ili9320.c
、ili9320_ucgui.c 、ili9320_api.c 、GUIConf.h、LCDConf.h
ucgui在stm32上的移植
- STM32(347763)
- 移植(27843)
相关推荐
101度开水ucgui视频教程分享
101度开水继推出 手把手教你在stm32上移植ucgui 之后又推出了一套UCGUI视频教程 详细系统的分析了UCGUI很好的帮助ucgui爱好者进行学习和开发分享几集视频希望对大家有帮助 谢谢
2013-09-20 18:36:07
7寸电容屏UCGUI移植不能实现触摸功能
上传我移植的程序,大家能不能帮我看一下是什么问题。MINISTM32 7寸大屏UCGUI移植.zip (1.54 MB )
2019-04-22 22:39:36
STM32+UCGUI+UCOSII移植出现error
如图是我在移植的时候出现的error,但是我找了找根本没有这两个h文件,这个怎么办STM32使用的是3.5的库,ucgui使用的是3,90的源码
2019-04-16 06:36:15
STM32 UCGUI问题, 请问下各位朋友,在移植控件(GUI-Widget)文件的时候总是提示未定义。要怎么添加呢!
STM32 UCGUI问题, 请问下各位朋友,在移植控件(GUI-Widget)文件的时候总是提示未定义。要怎么添加呢!
2016-06-10 00:09:09
STM32上移植了uCGUI3.90调用图形绘制后字符不能显示的原因?
最近在STM32上移植了uCGUI3.90,单独测试各功能没有问题,但是要联合起来就会出错!现在的现象是:单独显示字符能够正常显示,但若调用图形绘制后字符便不能显示了,同样的程序在VC仿真完全正常
2020-05-18 18:11:11
STM32移植uCGUI按键控件出现了下图情况
我在STM32上移植完uCGUI后,复制UCGUI手册上button控件代码想在触摸屏上显示一个按键“Click me...”,但是出现了下面的情况,请大神说一下是怎么回事!我的代码:static
2019-04-26 01:54:00
Stm32之UCGUI移植
uc/GUI基础移植以及根据GUI手册编写的若干小程序,适用于MINI开发板,仅供参考Stm32之UCGUI移植.rar (25.73 MB )
2019-07-12 01:32:35
UCGUI在stm32的移植该调用哪个函数?
今天成功完成了UCGUI在stm32的移植,晚上想在上面显示一张位图,我已经把一张图片用位图转换工具转换成c语言了,但是接下来我就不知道该调用哪个函数,应该把生成的c文件加到那个文件下面。成功做好
2019-07-17 04:24:33
UCGUI如何深入学习图型洁面开发
小弟最近移植UCGUI到STM32上,已经成功,但是最近想做给个图形,但是苦于不知如何去用GUI函数制作漂亮的界面,比如说,我想在TFT上模拟一个温度计,或者模拟仪表盘之类的,但是不知如何下手,请大侠给点建议啊或者资料啊
2013-11-10 18:28:04
评论