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

 

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安富莱_STM32-V6开发板 emWin教程(v2.0) 安富莱_STM32-V6开发板是一款基于STM32系列芯片的开发板,搭载emWin图形库,本为v2.0。emWin是一种灵活、高效的嵌入式图形界面库,可以在各种嵌入式系统中用于开发用户界面。 emWin教程(v2.0)为用户提供了详细的使用指南,使他们能够快速上手并成功运用emWin库开发功能强大的图形界面。 教程主要包括以下内容: 1. emWin库的基本概念:介绍emWin库的功能和特点,包括图形绘制、文本显示、控件等。 2. 开发环境准备:教程会详细指导用户在使用STM32-V6开发板前需要做的准备工作,如下载安装MDK-ARM集成开发环境、配置开发板等。 3. 库安装和配置:教程会指导用户如何将emWin库正确安装到MDK-ARM开发环境中,并进行相关配置。 4. 图形界面设计:详细介绍如何使用emWin库进行图形用户界面设计,包括界面布局、界面元素自定义、触摸屏交互等。 5. 控件使用:指导用户如何使用emWin库中的各种控件,如按钮、滑动条、列表框等,以实现丰富的用户交互。 6. 网络功能集成:教程还会介绍如何在emWin图形界面中集成网络功能,如实现网络连接、数据传输等。 7. 实例演示:教程会提供一些实例演示代码,帮助用户更好地理解和掌握emWin库的使用方法。 通过学习emWin教程(v2.0),用户可以掌握emWin库的基本使用方法,了解如何设计和开发功能丰富的嵌入式图形界面。同时,用户还可以通过实例演示进一步加深对emWin库的理解,并在实际应用中灵活运用。 总之,安富莱_STM32-V6开发板emWin教程(v2.0)是一份全面、详细的指南,非常适合想要学习并使用emWin库进行嵌入式图形界面开发的开发者。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值