最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

STM32下移植UCGUI的教程方法

来源:动视网 责编:小OO 时间:2025-09-30 08:21:35
文档

STM32下移植UCGUI的教程方法

在MDK环境下将3.90版本的UCGUI移植到STM32下了,为了方便大家,特写此移植方法,大家可以借鉴(有错误之处,望大家指点出来共同讨论!)移植步骤:第一步:首先,得把你的TFT底层驱动写好,既在裸机下,可以正常显示。第二步:加入UCGUI程序包。第三步:配置LCDConf.h GUIConf.h GUITouchConf.h(由于我的液晶不带触摸功能,此配置在此不讲。)        配置LCDConf.h文件如下:        #ifndef LCDCONF_H#define LCD
推荐度:
导读在MDK环境下将3.90版本的UCGUI移植到STM32下了,为了方便大家,特写此移植方法,大家可以借鉴(有错误之处,望大家指点出来共同讨论!)移植步骤:第一步:首先,得把你的TFT底层驱动写好,既在裸机下,可以正常显示。第二步:加入UCGUI程序包。第三步:配置LCDConf.h GUIConf.h GUITouchConf.h(由于我的液晶不带触摸功能,此配置在此不讲。)        配置LCDConf.h文件如下:        #ifndef LCDCONF_H#define LCD
在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 

文档

STM32下移植UCGUI的教程方法

在MDK环境下将3.90版本的UCGUI移植到STM32下了,为了方便大家,特写此移植方法,大家可以借鉴(有错误之处,望大家指点出来共同讨论!)移植步骤:第一步:首先,得把你的TFT底层驱动写好,既在裸机下,可以正常显示。第二步:加入UCGUI程序包。第三步:配置LCDConf.h GUIConf.h GUITouchConf.h(由于我的液晶不带触摸功能,此配置在此不讲。)        配置LCDConf.h文件如下:        #ifndef LCDCONF_H#define LCD
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top