教程不断更新中: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介绍相关推荐

  1. 2022版Maven教程 - 第六章 单一架构案例

    2022版Maven教程 - 第六章 单一架构案例 一.创建工程,引入依赖 1.架构 ①架构的概念 ②单一架构 2.创建工程 3.引入依赖 ①搜索依赖信息的网站 [1]到哪儿找? [2]怎么选择? ② ...

  2. 【黑金动力社区】【BF531 体验板教程】 第二章 MS531介绍(二)

    黑金动力社区:http://www.heijin.org 一. 工程简介 即使BF531简单易用,但是由于其昂贵的开发工具,使很多初学者望而却步(此章有钱人可以绕道,哈哈).作者去年接了一个项目,摸索 ...

  3. mysql5.7.17.zip教程,Mysql学习win10下mysql 5.7.17 zip压缩包版安装教程

    搜索热词 <MysqL学习win10下MysqL 5.7.17 zip压缩包版安装教程>要点: 本文介绍了MysqL学习win10下MysqL 5.7.17 zip压缩包版安装教程,希望对 ...

  4. 【第3版emWin教程】第45章 emWin6.x窗口管理器之定时器使用

    教程不断更新中:第3版emWin教程和ThreadX GUIX教程开工,双管齐下,GUIX更新至第28章,emWin更新至第48章(2021-09-13) - uCOS & uCGUI &am ...

  5. 【第3版emWin教程】第50章 emWin6.x的AppWizard使用控件经典回调方式

    教程不断更新中:第3版emWin教程和ThreadX GUIX教程开工,双管齐下,GUIX更新至第28章,emWin更新至第50章(2021-10-01) - uCOS & uCGUI &am ...

  6. 【第3版emWin教程】第42章 emWin6.x窗口管理器之回调消息类型

    教程不断更新中:第3版emWin教程和ThreadX GUIX教程开工,双管齐下,GUIX更新至第28章,emWin更新至第48章(2021-09-13) - uCOS & uCGUI &am ...

  7. 【第3版emWin教程】第48章 emWin6.x对话框基础知识

    教程不断更新中:第3版emWin教程和ThreadX GUIX教程开工,双管齐下,GUIX更新至第28章,emWin更新至第48章(2021-09-13) - uCOS & uCGUI &am ...

  8. 【第3版emWin教程】第49章 emWin6.x的AppWizard创建控件回调消息

    教程不断更新中:第3版emWin教程和ThreadX GUIX教程开工,双管齐下,GUIX更新至第28章,emWin更新至第50章(2021-10-01) - uCOS & uCGUI &am ...

  9. 【第3版emWin教程】第55章 emWin6.x按钮Button控件自定义回调函数,实现各种按钮效果

    教程不断更新中:链接 第55章       emWin6.x按钮Button控件自定义回调函数,实现各种按钮效果 本章节为大家讲解按钮控件自定义回调函数,通过其回调函数就可以实现各种按钮效果.这方面的 ...

  10. 【第3版emWin教程】第8章 emWin6.x的带OS方式移植(STM32H7之RGB接口)

    教程不断更新中:http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429 第8章   emWin6.x的带OS方式移植(STM32H7之R ...

最新文章

  1. MySQL高可用群集------配置MMM高可用架构
  2. 【分享】2019张小龙微信公开课要点整理
  3. C#实现Office文档转Pdf的方法
  4. java list 去空字符串_【JAVA基础】list和字符串判空
  5. Ubuntu下用apache+perl搭建最简单的聊天室
  6. navicat修改表的主键自增长报错
  7. mysql数据库根目录恢复_MySQL中数据导入恢复的简单教程
  8. 库克:iPhone决不妥协!不爽换安卓 iPhone 更有“安全性和隐私性”
  9. 用于Power BI Desktop中的库存数据分析的烛台图
  10. 视频标签- video 音频标签- audio
  11. 负载均衡算法及手段(转)
  12. DDC——Deep Domain Confusion Maximizing for Domain Invariance
  13. 非常好的Oracle基础教程
  14. h5 打包后效果失效
  15. 如何用计算机解一元三次方程,利用Excel电子表格解一元三次方程
  16. gom引擎物品和武器的外观Shape值拓展算法
  17. hive卡在最后一个reduce过不去_数据倾斜
  18. audio的自动播放
  19. Mac IntelliJ IDEA 2020.1 闪退
  20. 什么是keep-alive

热门文章

  1. AutoCAD2014的安装与激活
  2. 时间都去哪儿了 作曲:董冬冬 演奏:赵海洋
  3. 用好Linux备份软件
  4. chrome插件(Resolution Test)不同分辨率测试
  5. 金和获微软ISV认证 提升产品技术优势
  6. 金字塔服务器连接文件夹,金字塔决策交易系统金钻版服务器及客户端安装配置说明...
  7. 区块链革命 - 第2篇 转型 - 第4章 重新设计公司架构:核心与边缘
  8. 微信小程序识别当前小程序的版本,开发版、体验版、线上版
  9. 如何在照片或者图片上增加文字
  10. Microsoft Teams会议文件无法下载或在线访问