第3版emWin教程第3章 emWin介绍

Posted Simon223

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第3版emWin教程第3章 emWin介绍相关的知识,希望对你有一定的参考价值。

教程不断更新中:http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429

第3章   emWin介绍

本章主要介绍emWin的基础知识。

目录

3.1   STemWin,emWin,μCGUI之间的关系

3.1.1  emWin和μCGUI的关系

3.1.2  STemWin和emWin的关系

3.1.3  emWin6.xx版本和以前版本的不同

3.2   emWin介绍

3.2.1  emWin设计界面

3.2.2  emWin目标系统硬件需求

3.2.3  emWin特性

3.2.4  RTOS对emWin多任务的支持

3.2.5  emWin基本的内存需要

3.2.6  emWin当前支持的控件

3.3   emWin论坛

3.4   总结


 

3.1   STemWin,emWin,μCGUI之间的关系

这个放在最开头进行说明,因为很多的初学者比较迷惑。

3.1.1  emWin和μCGUI的关系

首先要明白,emWin和μCGUI这两个GUI是同一个东西。最初这个GUI就是SEGGER公司的,然后以什么的方式授权给μCGUI就不清楚了。现在SEGGER公司是这个GUI的主要推动者,已经将其授权给了多个芯片生产厂家。

3.1.2  STemWin和emWin的关系

STemWin是SEGGER公司授权给ST(意法半导体)的。使用ST芯片的用户可以免费使用STemWin。其实不光授权给了ST,还有NXP,Energy Micro等。凡是使用这些芯片厂商生产的处理器都可以免费的使用emWin。但是出于一定的保护措施,使用STemWin的库是不能用在其它芯片厂商的处理器上面的。因为在工程初始化STemWin前要使能CRC校验。如果没有使能,STemWin是启动不起来的。

这里STemWin还针对ST的微控制器做了专门的优化,比如在使用ST的F4xx/H7xx微控制器带FPU的芯片时,STemWin在需要浮点处理的地方专门做了优化。

3.1.3  emWin6.xx版本和以前版本的不同

emWin发展到6.0版本以后进行了很大的更新,特别是性能更强的图形化创建工具AppWizard。emWin6.xx版本向下完全的兼容低版本,也就是说如果用户有在emWin6.xx以下版本建立的应用,完全可以在高版本上面实现。

emWin6.xx没有源码。想研究源码的,可以看早期的版本,了解一下消息机制。不过对于大多数从应用角度出发的用户,完全没有必要学习源码,源码内容太多。一些早期版本无法实现的功能,在emWin6.xx上面得到了很大的改善,支持的控件更多了。如果通过各种方法仍然无法实现,可以使用emWin支持的自定义控件,自定义回调函数或者控件皮肤设置做一个符合要求的。

3.2   emWin介绍

emWin6.xx版本设计出来的界面还是非常漂亮的。为了使大家有一些感官的认识,先来欣赏几张相关的界面设计图片。

3.2.1  emWin设计界面

下面是官方提供的应用界面设计效果:

 

 

 

 

整体来说,这些界面还是非常漂亮的,不过这些界面不是用专门的控件显示出来的,而是用2D绘图配合存储设备实现的。

 

  •  下面是在开发板上实现的界面效果

更多界面效果看此地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=17330

主界面:

 

音乐播放器界面:

 

视频播放界面:

 

收音机界面:

 

 示波器界面效果:

http://www.armbbs.cn/forum.php?mod=viewthread&tid=45785

 

 

3.2.2  emWin目标系统硬件需求

实现emWin的最基本硬件需求如下:

  •   一个MCU或者MPU(8/16/32/64位)且RAM和Flash大小要满足emWin最小需求。
  •   一个图形显示器 (任何类型和任何分辨率)。

Flash和RAM的使用大小取决于用户所使用的STemWin的功能以及编译器的效率。因此不可能指定精确的值,但是以下值适用于典型的系统。

未使用窗口管理器时

  •   RAM:100字节
  •   堆栈:600字节
  •   Flash:10-25 kb(取决于所使用的功能)

使用窗口管理器和控件时

  •   RAM:2-6 kb(取决于所需的窗口数)
  •   堆栈:1200-1800字节 (取决于所使用的功能)
  •   Flash:30-60 kb(取决于所使用的功能)

请注意,如果应用程序使用了很多字体,则对ROM的要求会提高。上述所有值都是粗略估算值,不保证能正常使用。

3.2.3  emWin特性

emWin提供了高效且独立于处理器和显示控制器的图形用户界面,可用于任何使用图形显示进行操作的应用。它与单任务和多任务环境、专用操作系统或任何商业RTOS均兼容,emWin的发布形式为C语言源代码。它可适用于任何尺寸的、具有任何显示控制器,不管是物理的还是虚拟的显示器。其特性包括:

【一般特性】

  •   支持使用任何控制器的任何(单色、灰度或彩色)显示器 (如果有正确的驱动)。
  •   在较小的显示器上无显示控制器也可运行。
  •   使用配置宏可支持任何接口。
  •   显示尺寸可配置。
  •  可在显示器上的任何点(而不仅仅是在偶数位字节地址)上写入字符和位图。
  •   已经针对尺寸和速度对程序进行了优化。
  •   对于较慢的显示控制器,可在存储器中缓存显示,将存取操作减到最少,从而获得非常高的速度。
  •   结构清晰。
  •   支持虚拟显示,虚拟显示可大于实际显示。

【图形库】

  •   支持不同颜色深度的位图。
  •  可使用位图转换器。
  •  绝对无浮点使用。
  •   快速线/点绘制 (不使用浮点)。
  •  圆形/多边形绘制非常快速。
  •  不同的绘图模式。

【字体】

  •  基本软件配备多种不同的字体:4*6、6*8、6*9、8*8、8*9、8*16、8*17、8*18、24*32以及像素高度为8、10、13、16的比例字体。
  •  可以定义新的字体。
  •  只有应用程序使用的字体才链接到可执行程序里,从而使Flash使用最小。
  •  字体可在X和Y方向完全缩放。
  •  可使用字体转换器,主机系统 (即Microsoft Windows)上有的任何字体都可以转换。

【字符串/值输出函数】

  •   函数可以十进制、二进制、十六进制、任何字体形式显示值。
  •   函数可以十进制、二进制、十六进制、任何字体形式编辑值。

【窗口管理器(WM)】

  •   完整的窗口管理操作,包括裁剪。窗口的客户区以外的区域不可能被覆盖。
  •   窗口可以移动和调整大小。
  •   支持回调函数(可选择是否使用)。
  •   窗口管理器使用最小的RAM(每个窗口大约50字节)。

【PC界面外观的可选控件】

  •   提供各种控件,它们通常自动操作并且简单易用。

【支持触摸屏和鼠标】

  •   对于控件,emWin提供触摸屏和鼠标支持。

【PC工具】

  •   模拟查看器。
  •   位图转换器。
  •   字体转换器。

3.2.4  RTOS对emWin多任务的支持

基本常见的RTOS都支持emWin的多任务,移植起来也比较简单,下面这些是官方提供好的移植。

这些移植好的接口文件在MDK的安装目录里面,以MDK5.34版本为例,所在的路径为:

\\Keil\\MDK-Middleware\\7.12.0\\emWin\\Sample\\GUI_X。

3.2.5  emWin基本的内存需要

 

这个只是官方提供的基本数据,仅供参考,具体还要看实际应用。

3.2.6  emWin当前支持的控件

由于emWin在不断的更新当中,这里是当前支持的大部分控件,但不是全部。

 

 

 

 

3.3   emWin论坛

我们有自己建立的论坛版块:

http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12

当然,SEGGER官方也有自己的emWin论坛,地址:http://forum.segger.com/

3.4   总结

关于emWin的介绍就跟大家介绍这么多,更详细的可以上我们的论坛进一步讨论。

 

以上是关于第3版emWin教程第3章 emWin介绍的主要内容,如果未能解决你的问题,请参考以下文章

第3版emWin教程第36章 emWin6.x光标

第3版emWin教程第37章 emWin6.x抗锯齿

第3版emWin教程第38章 emWin6.x多任务设计

第3版emWin教程第47章 emWin6.x控件基础知识

第3版emWin教程第40章 emWin6.x支持的颜色格式

第3版emWin教程第39章 emWin6.x指针输入设备(摇杆)