STEmWin移植无操作系统

时间:2024-05-20 13:27:01

一、软件下载:

去官网下载STemWIN库,en.stemwin.zip,目前是5.32版本

https://my.st.com/content/my_st_com/en/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32-standard-peripheral-library-expansion/stemwin.license=1585185754775.product=STemWin.version=1.2.0.html

同时下载参考手册

https://my.st.com/content/my_st_com/en/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32-standard-peripheral-library-expansion/stemwin.license=1585185754775.product=STemWin.version=1.2.0.html#

 

STEmWin移植无操作系统

另一个参考文档STemWin532.pdf,在下载的压缩包中:

en.stemwin\STemWin_Library_V1.2.0\Libraries\STemWinLibrary532\Documentation

二、加载配置文件

基础要求,目前你的stm32系统应该能够正确的用LCD显示。

配置主要是把LCD的驱动加载到STEmWin的接口函数中,还有给GUI分配内存、配置时钟等。

把库中的如下文件放入你的工程中,MDK为例:

     STEmWin移植无操作系统

 

加入工程:

                                                  STEmWin移植无操作系统

 

上图中的A需要根据实际选择,选择cm3或cm4等,选择有无OS等。

三、具体配置

分配内存

STEmWin移植无操作系统

GUIConf.h中配置是否用操作系统,使用层数,是否使用触摸屏等

在LCDConf_FlexColor_Template.c中,配置显示格式,连接GUI和LCD的驱动

下图,A配置显示函数,B配置图片格式(与分配内存的大小有关,以及与显示图片格式有关)

C配置液晶的大小。

                             STEmWin移植无操作系统

由于上部配置使用模板函数,则需要GUIDRV_Template.c在这些中来配置LCD所用的函数,建立连接

涉及到函数:

static void _SetPixelIndex(GUI_DEVICE * pDevice, int x, int y, int PixelIndex)

static unsigned int _GetPixelIndex(GUI_DEVICE * pDevice, int x, int y)

static void _FillRect(GUI_DEVICE * pDevice, int x0, int y0, int x1, int y1)

static void _DrawBitLine16BPP(GUI_DEVICE * pDevice, int x, int y, U16 const GUI_UNI_PTR * p, int xsize)

注:可根据具体需要进行优化其它函数

四、测试代码

GUI_Init();

GUI_SetBkColor(GUI_WHITE);

GUI_SetColor(GUI_RED);

GUI_Clear();

GUI_DispStringAt("Hello world!", 0, 0);

GUI_DispStringAt("Hello world!", 500, 250);

五、GUI_Delay的使用

如果想使用这个函数,需要给GUI提供时钟,可以是定时器或者是系统心跳。然后把OS_TimeMS++;放到中断函数即可。