[STM32F1]

基于enWin 的基础知识

[复制链接]
6163|38
手机看帖
扫描二维码
随时随地手机跟帖
hanzhen654|  楼主 | 2017-12-30 14:42 | 显示全部楼层 |阅读模式
1.emWin 简介
简而言之,emWin(是 embed win 的缩写)是 Segger 公司针对嵌入式平台开发的图形软件库,通过调用 emWin 提供的函数接口,开发嵌入式图形界面应用变得简单而快捷。而图形软件库究竟是什么呢?就是一些与图形界面相关的函数,它提供接口给用户调用。例如,在没有使用图形软件库时,要控制 LCD 显示一个圆,需要用户自行根据 LCD驱动编写画圆的函数,而使用图形界面软件库的话,这个画圆函数已经由该软件库提供给用户,用户只需要调用这个函数,设置圆的半径、圆心、颜色就可以画出自己想要的圆,不需要再考虑画圆的算法了。

hanzhen654|  楼主 | 2017-12-30 14:44 | 显示全部楼层
2.emWin 与 ucGUI、STemWin 的区别及联系
当前新版本的 emWin 及 uC/GUI只对用户提供了库文件,是不开源的。另外,Segger 公司还向 ST 公司出售了 emWin 的版权,从而 ST 公司也得到了定制版的 emWin,然后改了名字叫 STemWin。当用户在 STM32 芯片上使用 emWin 软件库时,是不需要向 emWin或 ST 公司付费的。
总而言之,uC/GUI 和 STemWin 都是 Segger 公司的 emWin 产品,而且它们的版本编号是统一的,如 uC/GUI 目前最新版本命名为 uC-GUI V5.24STemWin 最新版本命名为STemWin Library V5.24,emWin 最新版本则为 emWin V5.24,所以,要比较这三个软件库功能上的区别,只需要看它们的版本号就可以了。虽然功能上没有区别,但因为版权付费问题,在实际使用时就需要根据自己的平台来选择。由于我们使用的是 STM32 开发平台,自然我们选择的是 STemWin。因为如果我们选择的是 emWin 或 uC/GUI 使用到 STM32 产品上,同样是需要向 Segger 或 Micrium 公司购买版权的,而使用 STemWin 就不存在这个问题。在 STemWin 里有一个检测机制确定代码所运行的平台,若是 STM32 芯片,则运行正常,若非 STM32 芯片,就不能正常使用了。无特殊说明,不再区分 emWin 和 STemWin。

使用特权

评论回复
hanzhen654|  楼主 | 2017-12-30 14:45 | 显示全部楼层
3 emWin 的应用场合
    01.emWin 并不只是提供了画圆之类的基本绘图函数库,它的主要功能如下:
  02. 绘制 2-D图形:绘制圆、椭圆、多边形、弧线、线图和饼形图等;
  03.显示位图文件:显示 BMP、JPEG、GIF及 PNG格式的图片文件;
  04.显示文字:支持显示多国语言的文字,如中英文;
  05.处理用户输入:如键盘、鼠标及触摸屏的人机交互输入处理;
  06.提供各种窗口对象:这些窗口对象也被称为图形控件,最常见的如菜单控件、窗口控件、按键控件、复选框及框架窗口控件等,有了这些控件,就非容      易地制作出类似 windows 系统的控制界面了。

使用特权

评论回复
hanzhen654|  楼主 | 2017-12-30 14:47 | 显示全部楼层
emWin 的这些功能,就是为了解决人机交互应用的设计难题。而它对 ROM 和 RAM的消耗相对来说并不高。据官方统计,它们提供的一个基本例程(移植了 emWin 函数库,显示“HelloWorld”),消耗 ROM 60KB,RAM 7KB,这在当前大多数嵌入式平台都是可以接受的。又因为 emWin 可以在多任务系统及裸机的平台上运行,尤其适合嵌入式乱七八糟的开发要求,自然使得 emWin 在嵌入式人机交互场合中大放异彩。一些使用 emWin 制作出来的效果,如图。
4.PNG

使用特权

评论回复
hanzhen654|  楼主 | 2017-12-30 14:48 | 显示全部楼层
emWin 的获取
可以在 ST的官网获取,在本教程中我们使用的 STemWin 为 5.22 版本。
STemWin 下载链接:
http://www.stmicroelectronics.com.cn/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF
259225?s_searchtype=partnumber#

使用特权

评论回复
hanzhen654|  楼主 | 2017-12-30 14:49 | 显示全部楼层
emWin 文件简介
解压下载得的 STemWin 文件后,进入到这个目录:stemwin\STemWin_Library_V1.1.1\Libraries\STemWinLibrary522 见图

5.PNG

使用特权

评论回复
hanzhen654|  楼主 | 2017-12-30 14:50 | 显示全部楼层
1.Config 文件夹:其中的 GUIConf.c 文件用于配置 emWin 的存储空间分配,GUIConf.h 文 件 用 于 裁 剪 emWin 的 功 能 。
LCDConf_FlexColor_Template.c、LCDConf_Lin_Template.c 是 emWin 应用在不同液晶时使用的不同驱动模板;

使用特权

评论回复
hanzhen654|  楼主 | 2017-12-30 14:51 | 显示全部楼层
2.Documentation 文件夹:它包含了《STemWin5.pdf》文件,是关于 emWin 库的用户手册,由于 emWin 库不是开源代码,所以在使用 emWin 的函数接口时,唯一可以参考的说明就是这个手册;

使用特权

评论回复
hanzhen654|  楼主 | 2017-12-30 14:52 | 显示全部楼层
3.inc 文件夹:它包含了全部的 emWin 库核心的头文件,各种关于库函数的声明、定义都在这些文件里面。

使用特权

评论回复
hanzhen654|  楼主 | 2017-12-30 14:52 | 显示全部楼层
4.Lib 文件夹:它包含了 emWin 的代码库文件,针对 Cortex-M0、M3 和 M4 这些不同 CPU 内核以及在 GCC、MDK 和 IAR 这些不同编译环境,都有一个相对应的emWin 库,在使用的时候我们要根据自己的平台选择合适的库文件;

使用特权

评论回复
hanzhen654|  楼主 | 2017-12-30 14:53 | 显示全部楼层
5.OS 文件夹:它包含了 GUI_X.c 及 GUI_X_FreeRTOS.c 文件,分别是对应裸机平台的 GUI 延时,和多任务系统平台的关于进程调度之类的一些 emWin 所需要的
底层接口。

使用特权

评论回复
hanzhen654|  楼主 | 2017-12-30 14:53 | 显示全部楼层
6.Software 文件夹:它包含了 BmpCvt.exe、GUIBuilder.exe 和 FontCvt_V522.exe 这三个软件工具。BmpCvt.exe 用于把图片数据转换成 C 文件,GUIBuilder.exe 是一个使用图形界面方式开发 emWin 应用的工具,而FontCvt_V522.exe则用于字体文件转换;

使用特权

评论回复
hanzhen654|  楼主 | 2017-12-30 14:54 | 显示全部楼层
7.Release_Notes.html 文件:是关于 emWin 库不同发行版本的简要更新说明文档。

使用特权

评论回复
hanzhen654|  楼主 | 2017-12-30 14:55 | 显示全部楼层
emWin 应用的软件架构 7.PNG

使用特权

评论回复
hanzhen654|  楼主 | 2017-12-30 14:55 | 显示全部楼层
该架构看起来并不复杂,从最底层看起, 首先是硬件层,硬件层就是指最基本的板级支持软件包(BSP),也就是我们常说的底层驱动,它提供了对硬件平台资源最直接的访问;emWin 软件库承上启下,它运行在硬件层之上,与硬件层之间仅靠液晶驱动连接起来,而向应用层则提供了各种便于用户制作 GUI应用的接口。

使用特权

评论回复
hanzhen654|  楼主 | 2017-12-30 14:56 | 显示全部楼层
在没有使用 emWin 的软件架构中,很可能就是由硬件层直接过渡到应用层,甚至根本没有分层的概念,这样的应用程序将十分依赖于某个特定的硬件平台,不容易迁移到其它设备之中。从这个架构图可以看出,只需要编写好液晶驱动这个粘合 emWin 库和硬件BSP 层的中间件,就可以正常使用 emWin 了,迁移应用到不同的平台也简单得多。

使用特权

评论回复
hanzhen654|  楼主 | 2017-12-30 14:56 | 显示全部楼层
emWin 在 在 windows  上的仿真为了方便用户学习 emWin,Segger 官方设计了一个个相互独立的 emWin 应用小例子,一步步引导用户由浅入深熟悉各种 emWin 函数接口。当用户熟悉了 emWin 之后,还可以
参考它提供的综合例程,从而开发出炫丽的应用,也提高了开发速度。更重要的是这些程序都可以直接在 windows系统上仿真运行,初学者不需要在毫不熟悉 emWin的情况下,为
移植它到嵌入式环境而烦恼。而且在验证开发的时候直接在 windows 上仿真,可以大大减少下载程序到嵌入式平台的次数,从而提高开发效率。得知此等好消息,是不是觉得学习
更有信心了?赶紧来尝试一下。

使用特权

评论回复
hanzhen654|  楼主 | 2017-12-30 17:27 | 显示全部楼层
搭建 emWin 的 windows仿真环境
仿真版本的 emWin 文件介绍
emWin 的 windows 仿真版本是免费的,大家可以直接在 Segger官网下载,下载链接:http://www.segger.com/downloads.html?pid=26 。下载得到压缩包的文件名为:SeggerEval_WIN32_MSVC_MinGW_GUI_V522.zip,它是 emWin 的 5.22版本,以这个版本为例子。
emWin 仿真版本的工程在 windows 上是使用 visual c++作为编译器的,而现在visual c++编译器一般都集成到 visual studio 开发环境中了,使用 VS2013 (Microsoft visual studio 2013)作为开发环境进行。


使用特权

评论回复
hanzhen654|  楼主 | 2017-12-30 17:31 | 显示全部楼层
使用 VS2013 仿真 emWin   VS2013仿真 emWin 的步骤。
1.解压文件。解压 emWin 仿真版本压缩包,注意解压后的文件路径不要出现中文,否则在编译时会出错的;
2)  打开仿真工程。安装了 VS2013 集成环境后,打开 emWin 仿真版本的目录,找到“SimulationTrial.sln”文件,双击打开,打开后会弹出一个对话框提示 VC++版本问题的,直接选择“是”即可,如图 8.PNG

使用特权

评论回复
hanzhen654|  楼主 | 2017-12-30 17:34 | 显示全部楼层
开始编译工程。可以直接按快捷键“F5”,或者点击编译器中的调试按钮,编译并运行工程,编译器会弹出一个提示框,我们在该对话框打上勾,并选择“是”,让它以
后都不用再提示我们选择生成新项目。接下来就开始了编译过程,正常的话都会编译通过,然后弹出一个 emWin 仿真运行的界面,如图。 9.PNG

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

73

主题

1766

帖子

2

粉丝