您的位置 首页 电源

ucgui在stm32上的移植

在MDK环境下将390版本的UCGUI移植到STM32下了,为了方便大家,特写此移植方法,大家可以借鉴(有错误之处,望大家指点出来共同讨论!)移

在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:STM32F103RBTFT与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

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/254782.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部