图书简介:
第1章 emWin简介及开发环境搭建 1
1.1 emWin简介 1
1.2 Keil μVision5安装 4
1.3 Visual Studio 2019安装 10
本章任务 14
本章习题 14
第2章 GD32F3苹果派开发板简介 15
2.1 为什么选择GD32 15
2.2 GD32F3系列微控制器介绍 15
2.3 GD32F3苹果派开发板电路简介 17
2.4 本书配套开发资料 20
本章任务 23
本章习题 23
第3章 LCD显示与触摸 24
3.1 LCD显示原理 24
3.2 LCD显示模块接口 26
3.3 LCD控制原理 28
3.4 触摸屏分类 36
3.5 投射式触摸屏工作原理 37
3.6 触摸控制芯片简介 38
3.7 实例与代码解析 41
本章任务 67
本章习题 68
第4章 emWin移植 69
4.1 emWin的文件架构 69
4.2 emWin的主任务函数 70
4.3 emWin初始化 71
4.4 emWin开发配套工具 71
4.5 实例与代码解析 73
本章任务 87
本章习题 87
第5章 emWin仿真 88
5.1 emWin仿真工程文件架构 88
5.2 实例与代码解析 89
本章任务 99
本章习题 100
第6章 emWin基础显示 101
6.1 文本显示 101
6.2 数值显示 105
6.3 2D绘图 108
6.4 颜色 111
6.5 内存设备 113
6.6 实例与代码解析 115
本章任务 130
本章习题 130
第7章 窗口管理 131
7.1 窗口管理器简介 131
7.2 窗口的消息、回调和无效化 133
7.3 窗口管理器的库函数 135
7.4 窗口定时器 139
7.5 实例与代码解析 140
本章任务 149
本章习题 149
第8章 BUTTON控件 150
8.1 emWin控件简介 150
8.2 BUTTON控件简介 151
8.3 BUTTON控件的库函数 151
8.4 位图转换器用法简介 153
8.5 实例与代码解析 156
本章任务 164
本章习题 164
第9章 FRAMEWIN控件 165
9.1 对话框简介 165
9.2 创建对话框 165
9.3 FRAMEWIN控件简介 168
9.4 FRAMEWIN控件的库函数 170
9.5 实例与代码解析 172
本章任务 181
本章习题 181
第10章 TEXT和EDIT控件 182
10.1 TEXT控件 182
10.2 EDIT控件 184
10.3 实例与代码解析 187
本章任务 193
本章习题 193
第11章 PROGBAR控件 194
11.1 PROGBAR控件简介 194
11.2 PROGBAR控件的库函数 194
11.3 呼吸灯简介 196
11.4 实例与代码解析 196
本章任务 204
本章习题 204
第12章 RADIO控件 205
12.1 RADIO控件简介 205
12.2 RADIO控件的库函数 206
12.3 实例与代码解析 207
本章任务 213
本章习题 213
第13章 LISTBOX控件 214
13.1 LISTBOX控件简介 214
13.2 LISTBOX控件的库函数 215
13.3 实例与代码解析 217
本章任务 222
本章习题 223
第14章 GRAPH控件 224
14.1 GRAPH控件简介 224
14.2 GRAPH控件的数据对象 225
14.3 GRAPH控件的库函数 226
14.4 实例与代码解析 228
本章任务 233
本章习题 233
第15章 ICONVIEW控件 234
15.1 ICONVIEW控件简介 234
15.2 ICONVIEW控件的库函数 235
15.3 实例与代码解析 237
本章任务 243
本章习题 243
第16章 图片显示 244
16.1 图片格式简介 244
16.2 BMP图片 244
16.3 JPEG图片 248
16.4 PNG图片 249
16.5 实例与代码解析 251
本章任务 261
本章习题 261
第17章 中文显示 262
17.1 字符编码和点阵字体 262
17.2 字模和字库 264
17.3 emWin支持的字体类型 264
17.4 emWin支持的字体格式 268
17.5 C文件格式的字体生成和使用 268
17.6 实例与代码解析 274
本章任务 281
本章习题 281
附录 ASCII码表 282
参考文献 284
展开
前 言
本书主要介绍emWin开发与应用,采用的硬件平台为GD32F3苹果派开发板套件,包含开发板主板和4.3寸LCD显示模块。主板的主控芯片为GD32F303ZET6(封装为LQFP-144),由兆易创新科技集团股份有限公司(以下简称“兆易创新”)研发并推出。兆易创新的GD32 MCU是我国高性能通用微控制器领域的领跑者,主要体现在以下几点:①GD32 MCU是我国最大的ARM MCU产品家族,已经成为我国32位通用MCU市场的主流产品;②兆易创新在我国第一个推出基于ARM Cortex-M3、Cortex-M4、Cortex-M23和Cortex-M33内核的MCU产品系列;③全球首个RISC-V内核通用32位MCU产品系列出自兆易创新;④在我国32位MCU厂商排名中,兆易创新连续五年位居第一。
本书旨在介绍基于emWin的图形用户界面(GUI)开发,并提供一系列设计实例。图形用户界面是嵌入式设备与用户进行交互的重要手段之一,它提供了直观的可视化界面和丰富的交互方式,一方面以图表、图像、动态效果等形式呈现复杂的数据,使用户更易于获取和分析信息;另一方面通过图标、按钮、窗口等控件实现人机交互,用户只需操作界面元素即可控制应用程序的行为。图形用户界面相较于其他人机交互方式的优势在于其用户友好性,降低了用户学习和使用的门槛,极大地提升了用户体验。在医疗器械、家用电器、工控设备等领域中,图形用户界面具有非常广泛的应用。
emWin是Segger公司开发的一款高性能、可移植、可扩展的GUI开发库,支持市面上常见的各大嵌入式平台和操作系统,包括使用ARM Cortex-M系列处理器的Renesas、NXP、GigaDevice等。除了强大的适配性,emWin还为开发者提供了丰富的界面设计元素,包括基本的图形(线条、圆形、矩形等)绘制和文本显示接口、丰富的控件(按钮、编辑框、进度条等)、灵活的窗口管理器等。此外,emWin还提供了强大的事件驱动机制,开发者可以通过注册事件回调函数来处理用户输入和界面交互,保障用户交互的实时性和准确性。
emWin为图形用户界面设计提供了丰富的解决方案,也为开发者提供了强大的支持,在嵌入式GUI开发领域具有出色的用户反馈。然而市面上关于emWin应用开发的书籍较少,基于国产微控制器的emWin教材更是屈指可数,相关开发者难以系统性地获取emWin的知识体系。为此,我们希望通过编写本书,使初学者能够快速学习emWin,掌握其基本概念、特性和开发技巧。无论是刚刚踏入嵌入式GUI开发领域的初学者,还是已有一定经验的开发者,本书都将为其提供一定的实践指导和实用的开发案例。希望读者通过学习emWin,能够掌握更高效的GUI开发技术和方法,为嵌入式设备应用带来更出色的用户体验。
本书聚焦emWin应用开发,涉及微控制器外设的介绍较少。因此,对于缺乏嵌入式开发经验的读者,建议先学习“卓越工程师培养系列”教材中的《GD32F3开发基础教程—基于GD32F303ZET6》。读者可通过该教材来学习GD32F303ZET6微控制器基础片上外设的原理与应用,同时还可以掌握开发板及相关软件工具的使用方法,为emWin的学习打下基础。
本书章节内容安排如下:
第1~2章简要介绍emWin开发所用的软件平台及对应的安装配置步骤,还介绍了硬件平台和配套的资料包。
第3章介绍了GD32F3苹果派开发板上搭载的4.3寸触摸屏的LCD显示原理,为emWin的开发提供底层的硬件原理与基础。
第4~7章介绍了emWin在开发板上的移植和在Windows端仿真的详细步骤,并初步介绍了emWin的文本、绘图等基础显示函数及窗口管理器的功能和用法。
第8~15章介绍了emWin所提供的常用控件的功能,并通过具体的案例来说明各个控件的用法。
第16~17章介绍了emWin对图片显示和中文显示提供的支持。
本书特点如下:
(1)本书内容对有一定微控制器开发基础的读者来说较为友好,建议先学习前面提到的《GD32F3开发基础教程—基于GD32F303ZET6》,再学习本书。
(2)本书适合具有ARM基础的嵌入式工程师学习,以及适合高等院校电子信息、自动化等专业的学生作为教材使用。
(3)本书注重理论与实践相结合,对高深晦涩的原理涉及较少,大多采用通俗易懂的语言深入浅出地进行介绍。按照先学习后实践的方式,将理论运用到实际工程中,以巩固所学知识。
(4)书中的所有例程按照统一的工程架构设计,每个子模块都按照统一标准设计,以方便读者使用书中所学知识进行进一步开发,或者将其应用到项目中。
(5)本书配套有丰富的资料包,包含例程、软件包、PPT等。这些资料会持续更新,下载链接可通过微信公众号“卓越工程师培养系列”获取。
唐浒和郭文波对本书的编写思路和大纲进行了总体策划,指导了全书的编写,对全书进行了统稿,并参与了部分章节的编写;陈可东、何青协助完成统稿工作,并参与了部分章节的编写;董磊对全书进行了审核。本书配套的GD32F3苹果派开发板和例程由深圳市乐育科技有限公司开发。兆易创新科技集团股份有限公司的金光一、王霄为本书的编写提供了充分的技术支持。本书的出版还得到了电子工业出版社的鼎力支持,张小乐编辑为本书的顺利出版做了大量的工作,在此一并致以衷心的感谢!
由于编者水平有限,书中难免有不成熟和错误之处,恳请读者批评指正。读者反馈问题、获取相关资料或遇开发板技术问题,可发邮件至邮箱:ExcEngineer@163.com。
展开