• 【第3版emWin教程】第3章 emWin介绍


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

    第3章   emWin介绍

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

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

    3.2 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版本为例,所在的路径为:

    KeilMDK-Middleware7.12.0emWinSampleGUI_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的介绍就跟大家介绍这么多,更详细的可以上我们的论坛进一步讨论。

    微信公众号:armfly_com 安富莱论坛:www.armbbs.cn 安富莱淘宝:https://armfly.taobao.com
  • 相关阅读:
    Android&读取Sdcard中的歌曲,ListView操作
    委托从数据库出来的类型分类处理
    分类信息网站
    Managed DirectX +C# 开发(入门篇)(二)
    ZedGraph控件的使用属性和例子代码
    【转】 c#ZedGraph 控件属性
    ZedGraph
    基于Visual C#的DirectX开发实例教程
    C#常用开源类库收集
    狄更斯《双城记》开场白
  • 原文地址:https://www.cnblogs.com/armfly/p/14885848.html
Copyright © 2020-2023  润新知