COIDE下STemwin移植教程

STemwin其实就是uc gui。

本次教程需要使用CoOS和重定向printf,这两个都可以在本博客找到教程:CoOS使用教程,COIDE下重定向printf

接下来就可以移植STemwin了,先添加一些需要的组件,如下图所示。

COIDE下STemwin移植教程_第1张图片

删掉LCDConf_Lin_Template.c、LCDConf_Lin_Template.h、GUI_X_FreeRTOS.c、GUI_X.c这四个文件,剩下的文件如下图所示。

COIDE下STemwin移植教程_第2张图片

因为CoOS和STemwin在定义类型别名上,有部分重复定义了,所以得在CoOS.h上修改一下(Global.h是STemwin定义的类型别名头文件)。

COIDE下STemwin移植教程_第3张图片

修改GUIConf.c中开辟的内存用量,这里是50KB。

修改LCDConf_FlexColor_Template.h文件,如下图所示。

COIDE下STemwin移植教程_第4张图片

修改LCDConf_FlexColor_Template.c文件。以下五个函数都比较简单,在裸机开发的LCD也会用到。



COIDE下STemwin移植教程_第5张图片

COIDE下STemwin移植教程_第6张图片

然后在LCD_X_DisplayDriver函数中插入LCD的初始化函数,这里是ILI9325_Init(),这个函数包含了对GPIO、FSMC、LCD的初始化。具体的函数内容就不贴出来了,不同的芯片会有点不一样。

COIDE下STemwin移植教程_第7张图片

在LCD_X_Config函数中,修改成如下图所示。

COIDE下STemwin移植教程_第8张图片

接下来需要把STemwin的LCDConf_FlexColor_Template.c、LCD_ConfDefaults.h、LCD_Private.h文件中的#include "LCDConf.h"语句全部修改为#include "LCDConf_FlexColor_Template.h"

然后在GUIDRV_Template.c文件中添加头文件#include "LCDConf_FlexColor_Template.h",接着在_SetPixelIndex函数内部添加画点的函数,这里是ILI_9325_Draw_Point,在_GetPixelIndex函数内部添加读点的函数。具体的函数内容就不贴出来了,不同的芯片会有点不一样。

COIDE下STemwin移植教程_第9张图片

COIDE下STemwin移植教程_第10张图片

至此,STemwin的移植部分全部完成,剩下的,就是使用它。修改main.c文件,如下图所示。

COIDE下STemwin移植教程_第11张图片

COIDE下STemwin移植教程_第12张图片

这里特别需要注意一点,要使用STemwin,必须打开CRC以校验芯片型号。

然后链接STemwin的库文件libSTemWin522_CM3_OS_GCC.a,最后,编译工程。

COIDE下STemwin移植教程_第13张图片

最终效果:串口1每隔1s发一次数据,LED不停闪烁,LCD上显示"hello world!"字符。

你可能感兴趣的:(单片机)