logo资料库

野火emwin实战指南.pdf

第1页 / 共156页
第2页 / 共156页
第3页 / 共156页
第4页 / 共156页
第5页 / 共156页
第6页 / 共156页
第7页 / 共156页
第8页 / 共156页
资料共156页,剩余部分请下载后查看
emWin实战指南
前言
第一部分:emWin简介
第1章 emWin是什么?
1.1 emWin 简介
1.2 emWin 与ucGUI、STemWin的区别及联系
1.3 emWin的应用场合
第2章 初识emWin
2.1 emWin的获取
2.2 emWin文件简介
2.3 emWin 应用的软件架构
第二部分 :emWin在windows上的仿真
第3章 搭建emWin的windows仿真环境
3.1 仿真版本的emWin文件介绍
3.2 使用VS2013仿真emWin
第4章 emWin仿真工程文件
4.1 emWin仿真工程概览
4.2 Application文件夹
4.3 Config文件夹
4.4 GUI文件夹
4.5 Sample文件夹
第5章 Hello emWin
5.1 配置工程文件
5.2 学习BASIC_HelloWorld工程代码
第6章 使用《emWin用户手册》
6.1 《emWin用户手册》简介
6.2 根据函数名查找库函数说明
6.3 根据功能查找库函数
第7章 emWin学习之旅
第三部分:emWin应用实例
第8章 在野火开发平台应用emWin
8.1 野火STM32-ISO开发平台简介
8.1.1 STM32F103ZET6芯片
8.1.2 外部SRAM芯片
8.1.3 液晶显示屏及触摸屏
8.2 野火GUI效果一览
第9章 液晶屏基础
9.1 LCD控制器简介
9.1.1 ILI9341控制器结构
9.1.2 像素点的数据格式
9.1.3 ILI9341的通讯时序
9.2 用STM32驱动LCD
9.2.1 FSMC简介
9.2.2 用FSMC模拟8080时序
9.3 触摸屏感应原理
9.4 XPT2046触摸屏控制器
9.5 LCD触摸屏画板实验
9.5.1 实验描述及工程文件清单
1. 实验描述:
2. 硬件连接:
3. 使用到的ST库文件
9.5.2 配置工程环境
9.5.3 main文件
9.5.4 初始化FSMC模式
1. 初始化液晶屏流程
2. 初始化FSMC模式
9.5.5 FSMC模拟8080读写参数、命令
1. 读写参数、命令
2. 计算地址
9.5.6 液晶屏画点函数
9.5.7 触摸屏校正
9.5.8 检测触点、画点
9.5.9 实验现象
第10章 emWin基本功能移植
10.1 移植液晶驱动(emWin_basic)
10.1.1 实验描述及工程文件清单
1. 实验描述
2. 硬件连接
3. 主要工程文件
10.1.2 配置工程环境
10.1.3 emWin的初始化过程
10.1.4 GUI_X_Config函数
10.1.5 LCD_X_Config 函数
1. GUI_DEVICE类型
2. CONFIG_FLEXCOLOR类型
3. GUI_PORT_API类型
10.1.6 LCD_X_DisplayDriver函数
10.1.7 为emWin提供系统定时
10.1.8 使用emWin点亮液晶屏
10.1.9 实验步骤及现象
1. 实验步骤
2. 实验现象
10.2 移植触摸驱动
10.2.1 实验描述及工程文件清单
1. 实验描述
2. 硬件连接
3. 主要工程文件
10.2.1 配置工程环境
10.2.2 emWin的液晶驱动接口
10.2.3 定时调用触摸驱动
10.2.4 触摸校准
10.2.5 触摸滤波
10.2.6 实验步骤及现象
1. 实验步骤
2. 实验现象
10.3 测试官方演示例程
10.3.1 实验描述及工程文件清单
1. 实验描述
2. 硬件连接
3. 主要工程文件
10.3.2 配置工程环境
10.3.3 运行测试例程
10.3.4 实验步骤及现象
1. 实验步骤
2. 实验测试内容
第11章 emWin扩展功能移植
11.1 添加文件系统
11.1.1 实验描述及工程文件清单
1. 实验描述
2. 硬件连接
3. 主要工程文件
4. 配置工程环境
11.1.2 测试文件系统
11.1.3 实验步骤及现象
1. 实验步骤
2. 实验现象
11.2 使用外部SRAM
11.2.1 实验描述及工程文件清单
1. 实验描述
2. 硬件连接
3. 主要工程文件
4. 配置工程环境
11.2.2 初始化外部SRAM
11.2.3 给emWin分配外部SRAM空间
11.2.4 实验步骤及现象
1. 实验步骤
2. 实验现象
第12章 野火GUI例程介绍
12.1 野火GUI初体验
12.1.1 实验步骤
12.1.2 实验现象说明
1. 状态窗口
2. 控制窗口
3. 主窗口
12.2 野火GUI例程框架
12.2.1 主要工程文件
12.2.2 初始化板载外设
12.2.3 创建桌面
1. 初始化窗口大小
2. 设置控件皮肤及字体
3. 创建状态窗口
4. 创建控制窗口
5. 创建主窗口
12.2.4 野火GUI中的应用链表
1. 初始化链表
2. 新建并添加结点到链表
3. 获取当前显示的应用句柄
4. 删除及遍历链表结点
第13章 野火GUI应用
附录A 软件安装
附录B 参考文献
emWin 实战指南 版本 1.0.0 更新内容 - 修订历史 日期 2014/7/1
前言 本教程讲解如何在 STM32 上设计 GUI 应用,使用的是野火 STM32-ISO 开发板平台, 以 STemWin GUI 库为例子进行讲解 (STemWin 可以理解为 emWin\uCGUI,详见本教程说 明)。 2 / 156
目录 前言 .................................................................................................................................................. 2 第一部分:emWin 简介 .................................................................................................................. 6 第 1 章 emWin 是什么? .............................................................................................. 7 1.1 emWin 简介 ................................................................................................................ 7 1.2 emWin 与 ucGUI、STemWin 的区别及联系 ........................................................... 7 1.3 emWin 的应用场合 .................................................................................................... 8 第 2 章 初识 emWin ...................................................................................................... 9 2.1 emWin 的获取 ............................................................................................................ 9 2.2 emWin 文件简介 ........................................................................................................ 9 2.3 emWin 应用的软件架构 .......................................................................................... 10 第二部分 :emWin 在 windows 上的仿真 ................................................................................... 12 第 3 章 搭建 emWin 的 windows 仿真环境 ............................................................... 13 3.1 仿真版本的 emWin 文件介绍 ................................................................................. 13 3.2 使用 VS2013 仿真 emWin ....................................................................................... 13 第 4 章 emWin 仿真工程文件 .................................................................................... 17 4.1 emWin 仿真工程概览 .............................................................................................. 17 4.2 Application 文件夹 ................................................................................................... 17 4.3 Config 文件夹 ........................................................................................................... 18 4.4 GUI 文件夹 ............................................................................................................... 23 4.5 Sample 文件夹 .......................................................................................................... 24 第 5 章 Hello emWin ................................................................................................... 25 5.1 配置工程文件 ........................................................................................................... 25 5.2 学习 BASIC_HelloWorld 工程代码 ........................................................................ 27 第 6 章 使用《emWin 用户手册》 ............................................................................ 29 6.1 《emWin 用户手册》简介 ...................................................................................... 29 6.2 根据函数名查找库函数说明 ................................................................................... 30 6.3 根据功能查找库函数 ............................................................................................... 31 第 7 章 emWin 学习之旅 ............................................................................................ 34 第三部分:emWin 应用实例 ........................................................................................................ 35 第 8 章 在野火开发平台应用 emWin ........................................................................ 35 8.1 野火 STM32-ISO 开发平台简介 ............................................................................. 35 8.1.1 STM32F103ZET6 芯片 ................................................................................. 36 8.1.2 外部 SRAM 芯片 ........................................................................................... 37 3 / 156
8.1.3 液晶显示屏及触摸屏 .................................................................................... 37 8.2 野火 GUI 效果一览 .................................................................................................. 38 第 9 章 液晶屏基础 ..................................................................................................... 40 9.1 LCD 控制器简介 ...................................................................................................... 40 9.1.1 ILI9341 控制器结构 ...................................................................................... 40 9.1.2 像素点的数据格式 ........................................................................................ 41 9.1.3 ILI9341 的通讯时序 ...................................................................................... 42 9.2 用 STM32 驱动 LCD ................................................................................................ 43 9.2.1 FSMC 简介 .................................................................................................... 43 9.2.2 用 FSMC 模拟 8080 时序.............................................................................. 45 9.3 触摸屏感应原理 ....................................................................................................... 46 9.4 XPT2046 触摸屏控制器 .......................................................................................... 46 9.5 LCD 触摸屏画板实验 .............................................................................................. 47 9.5.1 实验描述及工程文件清单 ............................................................................ 47 9.5.2 配置工程环境 ................................................................................................ 48 9.5.3 main 文件 ....................................................................................................... 49 9.5.4 初始化 FSMC 模式 ....................................................................................... 50 9.5.5 FSMC 模拟 8080 读写参数、命令 ............................................................... 55 9.5.6 液晶屏画点函数 ............................................................................................ 58 9.5.7 触摸屏校正 .................................................................................................... 61 9.5.8 检测触点、画点 ............................................................................................ 64 9.5.9 实验现象 ........................................................................................................ 65 emWin 基本功能移植 .................................................................................... 67 第 10 章 10.1 移植液晶驱动(emWin_basic) ................................................................................ 67 10.1.1 实验描述及工程文件清单 .......................................................................... 67 10.1.2 配置工程环境 .............................................................................................. 67 10.1.3 emWin 的初始化过程 ................................................................................. 69 10.1.4 GUI_X_Config 函数 .................................................................................... 70 10.1.5 LCD_X_Config 函数 ................................................................................... 72 10.1.6 LCD_X_DisplayDriver 函数 ....................................................................... 82 10.1.7 为 emWin 提供系统定时 ............................................................................ 83 10.1.8 使用 emWin 点亮液晶屏 ............................................................................ 84 10.1.9 实验步骤及现象 .......................................................................................... 85 10.2 移植触摸驱动 ......................................................................................................... 87 10.2.1 实验描述及工程文件清单 .......................................................................... 87 10.2.1 配置工程环境 .............................................................................................. 87 10.2.2 emWin 的液晶驱动接口 ............................................................................. 88 10.2.3 定时调用触摸驱动 ...................................................................................... 91 10.2.4 触摸校准 ...................................................................................................... 91 10.2.5 触摸滤波 ...................................................................................................... 97 10.2.6 实验步骤及现象 .......................................................................................... 99 10.3 测试官方演示例程 ............................................................................................... 100 10.3.1 实验描述及工程文件清单 ........................................................................ 100 10.3.2 配置工程环境 ............................................................................................ 101 10.3.3 运行测试例程 ............................................................................................ 102 4 / 156
10.3.4 实验步骤及现象 ........................................................................................ 104 emWin 扩展功能移植 .................................................................................. 106 第 11 章 11.1 添加文件系统 ....................................................................................................... 106 11.1.1 实验描述及工程文件清单 ........................................................................ 106 11.1.2 测试文件系统 ............................................................................................ 107 11.1.3 实验步骤及现象 ........................................................................................ 110 11.2 使用外部 SRAM .................................................................................................. 112 11.2.1 实验描述及工程文件清单 ........................................................................ 112 11.2.2 初始化外部 SRAM ................................................................................... 113 11.2.3 给 emWin 分配外部 SRAM 空间 ............................................................. 114 11.2.4 实验步骤及现象 ........................................................................................ 116 野火 GUI 例程介绍 ...................................................................................... 117 第 12 章 12.1 野火 GUI 初体验 .................................................................................................. 117 12.1.1 实验步骤 .................................................................................................... 117 12.1.2 实验现象说明 ............................................................................................ 117 12.2 野火 GUI 例程框架 .............................................................................................. 125 12.2.1 主要工程文件 ............................................................................................ 125 12.2.2 初始化板载外设 ........................................................................................ 127 12.2.3 创建桌面 .................................................................................................... 129 12.2.4 野火 GUI 中的应用链表 ........................................................................... 146 野火 GUI 应用 .............................................................................................. 154 第 13 章 附录 A 软件安装 .......................................................................................................................... 155 附录 B 参考文献 ......................................................................................................................... 156 5 / 156
第一部分:emWin 简介 6 / 156
第1章 emWin 是什么? 1.1 emWin 简介 简而言之,emWin(大概是 embed win 的缩写)是 Segger 公司针对嵌入式平台开发的图 形软件库,通过调用 emWin 提供的函数接口,开发嵌入式图形界面应用变得简单而快捷。 而图形软件库究竟是什么呢?就是一些与图形界面相关的函数,它提供接口给用户调 用。例如,在没有使用图形软件库时,要控制 LCD 显示一个圆,需要用户自行根据 LCD 驱动编写画圆的函数,而使用图形界面软件库的话,这个画圆函数已经由该软件库提供给 用户,用户只需要调用这个函数,设置圆的半径、圆心、颜色就可以画出自己想要的圆, 不需要再考虑画圆的算法了。 1.2 emWin 与 ucGUI、STemWin 的区别及联系 在国内的嵌入式行业中,由于 uC/OS 系统的名气,大家比较熟悉的嵌入式图形软件库 是 uC/GUI,但大部分人不知道,其实 uC/GUI 是 Segger 公司为 Micrium 公司(制作 uC/OS 的公司)定制的图形软件库,说是定制,但其实它跟 emWin 的区别并不大,以致于本人并 不知道它们在功能上究竟差别在何处。比较确定的是旧版本 uC/GUI 在网上还可以找到开 源的代码,而当前新版本的 emWin 及 uC/GUI 只对用户提供了库文件,是不开源的。 另外,Segger 公司还向 ST 公司出售了 emWin 的版权,从而 ST 公司也得到了定制版 的 emWin,然后改了名字叫 STemWin。当用户在 STM32 芯片上使用 emWin 软件库时,是 不需要向 emWin 或 ST 公司付费的。 总而言之,uC/GUI 和 STemWin 都是 Segger 公司的 emWin 产品,而且它们的版本编 号是统一的,如 uC/GUI 目前最新版本命名为 uC-GUI V5.24,STemWin 最新版本命名为 STemWin Library V5.24,emWin 最新版本则为 emWin V5.24,所以,要比较这三个软件库 功能上的区别,只需要看它们的版本号就可以了。 虽然功能上没有区别,但因为版权付费问题,在实际使用时就需要根据自己的平台来 选择。由于我们使用的是 STM32 开发平台,自然我们选择的是 STemWin。因为如果我们 选择的是 emWin 或 uC/GUI 使用到 STM32 产品上,同样是需要向 Segger 或 Micrium 公司 购买版权的,而使用 STemWin 就不存在这个问题。在 STemWin 里有一个检测机制确定代 码所运行的平台,若是 STM32 芯片,则运行正常,若非 STM32 芯片,就不能正常使用了。 在本教程后续的讲解中,无特殊说明,不再区分 emWin 和 STemWin。 7 / 156
1.3 emWin 的应用场合 emWin 并不只是提供了画圆之类的基本绘图函数库,它的主要功能如下:  绘制 2-D 图形:绘制圆、椭圆、多边形、弧线、线图和饼形图等;  显示位图文件:显示 BMP、JPEG、GIF 及 PNG 格式的图片文件;  显示文字:支持显示多国语言的文字,如中英文;  处理用户输入:如键盘、鼠标及触摸屏的人机交互输入处理;  提供各种窗口对象:这些窗口对象也被称为图形控件,最常见的如菜单控件、窗 口控件、按键控件、复选框及框架窗口控件等,有了这些控件,就非常容易地制 作出类似 windows 系统的控制界面了。 emWin 的这些功能,就是为了解决人机交互应用的设计难题。而它对 ROM 和 RAM 的消耗相对来说并不高。据官方统计,它们提供的一个基本例程(移植了 emWin 函数库, 显示“HelloWorld”),消耗 ROM 60KB,RAM 7KB,这在当前大多数嵌入式平台都是可 以接受的。又因为 emWin 可以在多任务系统及裸机的平台上运行,尤其适合嵌入式乱七八 糟的开发要求,自然使得 emWin 在嵌入式人机交互场合中大放异彩。一些使用 emWin 制 作出来的效果,见图 3-4。 图 1-1 emWin 效果演示效果图 8 / 156
分享到:
收藏