文档库 最新最全的文档下载
当前位置:文档库 › STM32不带操作系统移植STemwin,基于IAR编译器

STM32不带操作系统移植STemwin,基于IAR编译器

STM32不带操作系统移植STemwin,基于IAR编译器
STM32不带操作系统移植STemwin,基于IAR编译器

STM32 无操作系统移植STemWIN(IAR编译器)

本教程针对没有FSMC的单片机移植讲解

题外话:很多人有疑问,关于UCGUI和STemwin以及emwin的区别,这里大致说一下,一个关键词:SEGGER。SEGGER是德国的一个知名公司,而emwin(embed win)

就是SEGGER公司的一款产品,为此SEGGER公司为UCOS定制的叫做UCGUI。而

ST(意法半导体)公司也定制了自己的GUI叫做STemwin。其实都是SEGGER公司

的产品。(如果你是ST的MCU采用STemwin是不收费的哦)。

废话:1、要移植STemwin必须要有STemwin这个库,想要获取的方法很简单,ST官方网站(自己有兴趣可以找找)、或者Keil安装目录下面也有,路径是:Keil/ARM/SEGGER/emwin就

是了,不过keil下面的版本不是最新的。我的百度网盘分享了可以下载,

https://www.wendangku.net/doc/e717374309.html,/s/13VGi

2、需要有开发板一块液晶屏(当然也可以用它自带的仿真工具在电脑进行仿真,好像还需

要VC之类的软件,笔者没有深究),液晶屏的尺寸没有限制。硬件的工作准备好。笔

者液晶屏采用240*320。

3、完整的液晶底层驱动,它包括(液晶初始化函数、设置x、y坐标画点函数、读取像素x、

Y坐标的颜色的函数、设置X、y矩形框进行填充函数)就这些。

废话真多,下面进入正题

1、KEIL或者IAR建立完整的stm32的工程,笔者采用IAR,如下图:

2、打开下载的STemwin你会看到这样的文件,

说明:Config这个是液晶配置文件,OS是带操作系统的(笔者没有移植OS),software文件夹下面试一些上位机软件,在使用STemwin的过程中有用,inc是库文件的头文件,

DOC这个文件是一些说明文档。

3、打开lib问价夹,发现好多库文件,这就要根据你自己的实际情况选择了,笔者采用IAR

而STM32是属于M3内核所以选择了STemwin522_CM3_IAR,如下:

4、将这些文件添加进你的工程,inc文件夹下的全部添加,Config只需要添加一些,lib

只需要添加一个,demo也添加进来,添加好的文件如下:

添加了哪些地方有头文件需要包含以下,这个不用我多说,

5、添加好之后,自己编译一下,有错误就更改,直至没有错误为止,

6、更改配置文件,打开GUIConf.c文件配置,如下图:

7、配置GUIConf.h文件,这里面试一些开关,选择emwin支持的功能,可以全部打开,如

下:

8配置这个文件,这个文件是关键文件了配置如下:尺寸配置:

void LCD_X_Config(void)这个函数配置如下,

说明,这里笔者创建自己的LCD型号(如上图),如果不是,你可以选择LCD驱动型号,

这个要看STemwin的数据手册了,并且参数需要对应修改,如下图(看注释):

如果选择了自己的驱动就需要把四个接口函数填上,(笔者没有选择这种方式)

9、初始化函数添加进去,(添加你自己的TFT初始化函数)如下图:

因为笔者没有采用选择LCD驱动的方式,所以需要修改下面的函数了,如果选择那种方式就不用了。

打开文件。

1.添加画点函数,如下图:

2.添加你的读点函数,如下图:

3.快速填充函数,如下图:

说明:以上函数添加完之后,基本就一直完成了。(为了提高速度,读者可以根据自己的实际情况将上述自己的文件改成内敛函数,或者展开在里面),关于优化和提速这个各位就各显神通吧,当然要熟读快还是选择FSMC方式。

二、进入主函数,包含头文件。

Void main()

{

BSPinit();

GUI_Init();

GUI_DispStringAt("Design By Andy", 30, 50);

}

说明:BSPinit()中必须开启CRC时钟,

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC, ENABLE); 否则不能显示。这好像是ST防盗用的手段,具体情况不深究。

是不是液晶屏已经点亮正常显示了呢?如果没能正常显示,就找找原因哦!!!一定会成功的。

下面移植Demo让STemwin跑起来,

1.将demo添加进工程,如下图:

2.主函数包含demo的头文件,“GUIDEMO.h”

3.为demo分配心跳(节拍)。主函数中添加:

SysTick_Config(SystemCoreClock / 1000);然后找到Systick的ISR函数,添加心跳,如下,OS_TimeMS记得申明一下:extern __IO int32_t OS_TimeMS;

4.进入主函数,添加demomain,如下:

5.打开GUI_DEMO.H打开相应的开关,根据自己的内存选择,不要开太多了,如下:

下载程序,是不是已经跑起来了呢。

附上一张我的图

至此,stemwin已经移植完毕,这里只是将demo移植完毕跑起来了,更多的界面设计还需要我们自己去摸索。

相关文档