STM32CubeMX 系列教程 24:STemWim 移
植
摘要:本章教程带领大家移植 StmemWin 5.22 到 STM32 的 LDTC 接口控制
的 RGB 接口屏幕。
(注:本章只针对 STM32 芯片 F7,F4 系列带 LDTC 接口控制的 RGB 屏幕,对
F1 系列通过 FMC 控制的带控制器的屏幕不适用)
一、STemWin 简介
emWin 是 segger 公司出一种高效的而图形用户界面,是我们能够摆脱处理器
和显示控制器而更专注于 GUI 的设计。uCGUI 是 segger 公司授权 Micrum 公司推出
的,uCOS 操作系统也是这个公司出的。STemWin 是 SEGGER 公司授权给 ST 的,使
用 ST 芯片的用户可以免费使用 STemWin。出于一定保护措施,STemWin 的库是不
能用在其他公司的处理器上,因为工程初始化 STemWin 前要使能 CRC 检验。
二、新建工程
本章以上一章 LCD 触摸控制工程的基础上移植,复制上一章 Touch 的工程,修
改文件夹名。打开
STM32cubeMX 的工程文件重新配置,开启 CRC 校验。
CRC 为默认配置。
LDTC,FMC(SDRAM),DMA2D 配置还是按照原来的设置,这里不再详细简
介。另外注意一点堆栈的大小设置大一点,否则会程序会触发硬件错误中断
(HardFault)。
生成报告以及初始化代码,编译程序。
在 ST 固件库中可以找到 STemWin 的文件,路径:
STM32Cube_FW_F7_V1.3.0\Middlewares\ST\STemWin
其目录结构如下,其中 Config 为配置文件和移植相关,Lib 为 STemWin 封装
库,emWin 5.22 不再提供源码,Software 为电脑上用到的软
件,Documentation 为 STemWin 的使用文档。
将 STemWin 文件夹复制到工程目录下。在下面的路径下找到 Demo 程序目录
复制到刚才的 STemWin 目录
STM32Cube_FW_F7_V1.3.0\Projects\STM32756G_EVAL\Applications\STemWin\STemWin_
SampleDemo
打开工程添加应用文件:
这里简单介绍一下 STemWin 的几个文件。
1.stm32746g_sdram.c 为 SDRAM 驱动文件,程序中使用 SDRAM 作为 LCD
的显存
2.GT811.c 为触摸芯片驱动文件,TS_I2C.c 为模拟 I2C 驱动文件
3.GUIConf.c 为 STemWin 软件包中 Config 目录下的文件。
4.GUI_X.c 文件为 OS 目录下的文件,其中 GUI_X.c 为不带操作系统。
版本,GUI_X_OS.c 为带操作系统版本。本实验不带 OS。
5.LCDConf.c 为 LCD 底层移植文件,需要用户实现。Config 目录下面提供几
种移植模块。
本章是这个底层移植文件是复制 STM32 库固件 STM32746G-Discovery 示例程序的模
板再修改。将这个路径下的 LCDConf.c 文件,以及 Inc 目录下的 LCDConf.h 文件复制到
Config 目录中并添加进工程。
STM32Cube_FW_F7_V1.3.0\Projects\STM32746G-Discovery\
Applications\STemWin\STemWin_HelloWorld\Src
6.STemWin528_CM7_Keil.lib 为 STemWin 封装库文件,emWin 5.22 不再提供
源码,而是提供封装库。Lib 目录下含有 KEIL,IRA 和 GCC 三个编译环境的
库,而且还区分带 OS 和不带 OS 版本。本教程选择 KEIL 不带 OS 版本。
7.Demo 程序里面包含很多显示程序,为 STemWin 的示例程序,展示
STemWin 的各种控件的功能。直接复制固件库 STM32756G_EVAL 的 STemWin
Demo 程序路径如下:
STM32Cube_FW_F7_V1.3.0\Projects\STM32756G_EVAL\Applications\STemWin\STemWin_Sampl
eDemo
最后要添加目录的路径到工程。
三、STemWin 底层移植
最后修改一下底层移植文件,GUI_Init 初始化流程图如下(可能有些函数有改
变)。