logo资料库

ucGUI中文教程(STM32实例非常详细)emWin教程.pdf

第1页 / 共574页
第2页 / 共574页
第3页 / 共574页
第4页 / 共574页
第5页 / 共574页
第6页 / 共574页
第7页 / 共574页
第8页 / 共574页
资料共574页,剩余部分请下载后查看
第1章 STemWin介绍
1.1 STemWin,emWin,μCGUI之间的关系
1.1.1 μCGUI在国内比较火的原因
1.1.2 emWin和μCGUI的关系
1.1.3 STemWin和emWin的关系
1.1.4 emWin5.xx版本和以前版本的不同
1.2 SEGGER公司介绍
1.2.1 RTOS及其中间件
1.2.2 J-Link 调试工具
1.2.3 Production Programmers
1.3 STemWin介绍
1.3.1 STemWin设计界面
1.3.2 目标系统(硬件)
1.3.3 特性
1.3.4 RTOS对STemWin多任务的支持
1.3.5 STemWin基本的内存需要
1.3.6 STemWin当前支持的控件
1.4 STM32F103和407跑STemWin性能测试
1.4.1 刷色块
1.4.2 刷控件
1.5 STemWin论坛
1.6 总结
第2章 STemWin5.xx详细移植步骤
2.1 关于STemWin移植的重要说明
2.2 移植前的准备工作
2.2.1 MDK安装目录中emWin移植
2.2.2 STemWin移植
2.3 STemWin的裸机移植
2.3.1 工程中添加的文件
2.3.2 触摸屏滤波的实现
2.3.3 底层驱动接口函数(GUIRV_Template)
2.3.4 系统函数配置
2.4 STemWin带RTOS的移植
2.5 总结
第3章 RA8875屏触摸校准自适应
3.1 触摸校准基础知识介绍
3.2 触摸屏校准步骤
3.2.1 第一步:下载触摸自适应校准程序到开发板
3.2.2 第二步:进行触摸校准
3.3 触摸参数自动加载
3.4 总结
第4章 uCGUIBulder4.0和GUIBulder5.22的使用方法
4.1 GUIBulder5.22的使用步骤
4.1.1 第一步:建立一个对话框
4.1.2 第二步:在对话框上面建立按钮
4.1.3 第三步:在对话框上面建立滚动条
4.1.4 第四步:在对话框上面建立滑动条
4.1.5 第五步:建立好后点击File-save
4.2 emWin5.24模拟器上运行GUIBulder5.22生成代码
4.3 uCGUIBulder4.0的使用步骤
4.4 移植uCGUIBulder4.0生成的代码到开发板
4.5 总结
第5章 emWin5.24模拟器的使用方法
5.1 emWin5.24的使用方法
5.1.1 如何改变显示界面的大小
5.1.2 如何在这个工程上运行官方其它例子
5.1.3 如何运行下面这种官方例子
5.2 emWin5.24查看器的使用方法
5.3 总结
第6章 STemWin文本显示
6.1 简单文本显示
6.2 文本绘制模式
6.3 GUI_DispStringInRectWrap函数的使用
6.4 开发板上实现自动换行的例子
6.5 总结
第7章 STemWin数值显示
7.1 显示十进制数值
7.1.1 函数GUI_DispDec()
7.1.2 函数GUI_DispDecAt()
7.1.3 函数GUI_DispDecMin()
7.1.4 函数GUI_DispDecShift()
7.1.5 函数GUI_DispSDec()
7.1.6 函数GUI_DispSDecShift()
7.2 显示十六进制和二进制
7.3 显示浮点数值
7.4 实验总结
第8章 2-D图形库之基本绘图
8.1 画笔大小
8.2 基本绘制
8.3 Alpha混合
8.4 实验总结
第9章 2-D图形库之绘制流位图
9.1 生成C流文件
9.2 开发板上实现流位图
9.3 实验总结
第10章 2-D图形库之绘制图形
10.1 绘制多边形
10.1.1 例子一
10.1.2 例子二
10.1.3 例子三
10.2 绘制圆
10.3 绘制椭圆
10.4 绘制弧线
10.5 绘制曲线
10.6 绘制饼图
10.7 实验总结
第11章 BMP图片显示
11.1 BMP图片支持
11.1.1 PNG格式图标转BMP
11.1.2 BMP格式图标转换
11.2 绘制已经加载到存储器的BMP图片
11.3 绘制无需加载到存储器的BMP图片
11.4 实验总结
第12章 JEPG图片显示
12.1 JPEG图片支持
12.1.1 JPEG格式图标转换
12.1.2 JPEG存储器方式显示
12.2 绘制已经加载到存储器的JPEG图片
12.3 绘制无需加载到存储器的JPEG图片
12.4 实验总结
第13章 GIF图片显示
13.1 GIF图片支持
13.1.1 GIF格式图标转换
13.1.2 GIF存储器方式显示
13.2 绘制已经加载到存储器的GIF图片
13.3 绘制无需加载到存储器的GIF图片
13.4 实验总结
第14章 PNG图片显示
14.1 PNG图片支持
14.1.1 PNG格式图标转换
14.1.2 PNG存储器方式显示
14.2 绘制已经加载到存储器的PNG图片
14.3 绘制无需加载到存储器的PNG图片
14.4 实验总结
第15章 汉字基础知识介绍
15.1 汉字点阵
15.2 点阵原理
15.3 字库的建立及其原理
15.4 汉字点阵在汉字库中的地址计算公式
15.5 总结
第16章 STemWin支持字体
16.1 字体类型
16.1.1 Standard 比例位图字体
16.1.2 Antialiased 2bpp 抗锯齿字体
16.1.3 Antialiased 4bpp 抗锯齿字体
16.1.4 Extended 扩展比例位图字体
16.1.5 Extended 2bpp扩展比例位图字体
16.1.6 Extended 4bpp扩展比例位图字体
16.1.7 Extended framed带边框的扩展比例位图字体
16.1.8 等宽位图字体
16.1.9 TrueType 矢量字体
16.2 字符集
16.2.1 ASCII
16.2.2 ISO 8859-1西方拉丁字符集
16.2.3 Unicode
16.3 标准字体
16.3.1 比例字体
16.3.2 比例字体,带边框
16.3.3 等宽字体
16.3.4 数字字体(比例)
16.3.5 数字字体(等宽)
16.4 总结
第17章 STemWin外语支持
17.1 Unicode
17.1.1 UTF-8 编码方案
17.2 阿拉伯语支持
17.3 泰语支持
17.4 Shift JIS支持
17.5 总结
第18章 汉字显示方式一(FontCvt的使用)
18.1 使用FontCvt生成字库C文件的方法
18.1.1 第一步:打开选择Standard,16bit unicode
18.1.2 第二步:打开选择字体和字体大小
18.1.3 第三步:选择禁止所有的字符
18.1.4 第四步:用unicode软件转换函数
18.1.5 第五步:在FontCvt上使能这个五个字的编码
18.1.6 第六步:然后点击保存为C文件
18.2 在开发板上面实现中文显示
18.3 使用FontCvt生成字库C文件的简单方法
18.3.1 第一步:建立txt文件,并写入汉字
18.3.2 第二步:另存为unicode编码格式
18.3.3 第三步:打开FontCvt软件并设置显示字体
18.3.4 第四步:选择禁止所有的字符
18.3.5 第五步:读取前面的txt文件
18.3.6 第六步:然后点击保存为C文件
18.4 总结
第19章 汉字显示方式二(放到外部存储器)
19.1 移植方法
19.1.1 第一步:添加相关文件
19.1.2 第二步:将这几个文件添加到工程
19.1.3 第三步:GUI_UC_EncodeNone.c文件内容
19.1.4 第四步:GUICharPEx.c文件内容
19.1.5 第五步:字库文件
19.1.6 第六步:在GUI_Type.h中添加声明
19.1.7 第七步:添加主函数
19.2 总结
第20章 XBF外置字体方法(官方推荐)
20.1 XBF格式字体生成方法
20.1.1 第一步:选择带扩展的4位抗锯齿
20.1.2 第二步:选择字体类型和大小
20.1.3 第三步:另存为XBF格式文件
20.2 移植到开发板上显示
20.2.1 创建XBF字体
20.2.2 主函数
20.3 总结
第21章 SIF系统独立字体(官方推荐)
21.1 SIF格式字体生成方法
21.1.1 第一步:选择standard
21.1.2 第二步:选择字体和字体大小
21.1.3 第三步:另存为SIF格式文件
21.2 移植到开发板上显示
21.2.1 创建SIF字体
21.2.2 主函数
21.3 总结
第22章 TrueType矢量字体
22.1 矢量字体介绍
22.2 STemWin对矢量字体的支持
22.3 模拟器上面运行矢量字体
22.4 移植到开发板上显示
22.4.1 第一步:从官网下载矢量库
22.4.2 第二步:添加到emWin工程中(MDK)
22.4.3 第三步:修改Heap的大小
22.4.4 第四步:主程序
22.4.5 第五步:矢量字体放到SD卡中
22.5 总结
第23章 游标
23.1 STemWin支持的游标效果
23.2 模拟器上演示游标
23.3 模拟器上演示动态游标
23.4 总结
第24章 STemWin支持的颜色
24.1 预定义颜色
24.2 固定调色板及其说明
24.2.1 GUICC_1
24.2.2 GUICC_M565
24.2.3 GUICC_M8888
24.3 模拟器上演示颜色条测试例程
24.4 总结
第25章 Sprites
25.1 介绍
25.2 模拟器上演示sprite例子
25.3 总结
第26章 抗锯齿基础介绍
26.1 介绍
26.1.1 抗锯齿质量
26.1.2 抗锯齿字体
26.1.3 高分辨率坐标
26.2 抗锯齿API函数实例演示
26.2.1 函数GUI_AA_DrawArc
26.2.2 函数GUI_AA_DrawLine
26.2.3 函数GUI_AA_DrawPolyOutline
26.2.4 函数GUI_AA_DrawRoundedRect
26.2.5 函数GUI_AA_FillCircle
26.2.6 函数GUI_AA_FillPolygon
26.2.7 函数GUI_AA_FillRoundedRect
26.3 总结
第27章 抗锯齿实例讲解
27.1 例子一:AA_HiResAntialiasing
27.2 例子二:AA_HiResPixels
27.3 例子三:AA_HiResAntialiasing
27.4 总结
第28章 STemWin多任务设计(模拟器)
28.1 单任务系统(超级循环)
28.2 多任务系统:一个任务调用emWin
28.3 多任务系统:多个任务调用emWin
28.4 官方推荐运行方式
28.5 运行多任务(模拟器)
28.6 总结
第29章 STemWin多任务(uCOS-III)
29.1 单任务系统(超级循环)
29.1.1 内核接口
29.1.2 触摸接口
29.1.3 主程序
29.2 多任务系统:一个任务调用emWin
29.2.1 内核接口
29.2.2 触摸任务
29.2.3 STemWin任务
29.3 多任务系统:多个任务调用emWin
29.3.1 uCOS创建三个STemWin任务
29.3.2 STemWin任务
29.4 总结
第30章 指针输入设备(摇杆)
30.1 描述
30.2 指针输入设备(API)
30.3 五向摇杆操作游标
30.4 总结
第31章 键盘输入(实体按键操作控件)
31.1 描述
31.2 驱动层API
31.3 实体按键操作
31.4 总结
第32章 窗口管理器之回调机制
32.1 术语说明
32.2 回调机制,无效化和渲染
32.2.1 不使用回调函数
32.2.2 使用回调函数
32.2.3 背景窗口重绘和回调
32.2.4 无效化
32.2.5 渲染透明窗口
32.2.6 自动使用存储设备
32.2.7 自动使用多缓冲帧
32.2.8 自动使用显示驱动缓存
32.3 总结
第33章 窗口管理器之消息类型
33.1 消息结构
33.2 消息类型
33.3 系统类型消息实例
33.4 指针输入设备(PID)类型消息实例
33.5 通知代码类型消息实例
33.6 总结
第34章 窗口管理器实例(一)
34.1 用户自定义消息类型实例
34.2 桌面窗口回调函数实例
34.3 官方WM_Redraw.c实例
34.4 总结
第35章 窗口管理器实例(二)
35.1 官方WM_Sample.c实例
35.1.1 桌面窗口回调函数
35.1.2 Redrawing部分演示
35.1.3 Resize部分演示
35.2 官方WM_LateClipping.c实例
35.3 官方WM_Video.c实例
35.4 总结
第36章 窗口管理器之定时器使用
36.1 定时器功能介绍
36.2 桌面窗口上使用定时器实例
36.3 对话框上使用定时器实例
36.4 总结
第37章 窗口管理器之ToolTip使用
37.1 ToolTips介绍
37.2 ToolTips实例
37.3 总结
第38章 控件基础知识
38.1 当前支持的控件
38.2 控件的重绘机制
38.3 如何使用控件
38.3.1 默认配置
38.3.2 控件如何通讯
38.3.3 皮肤设置
38.3.4 控件的动态内存使用
38.3.5 确定控件的类型
38.4 控件配置选项
38.5 通用控件API
38.6 常用函数
38.6.1 _CreateIndirect()函数
38.6.2 WIDGET_SetDefaultEffect()函数
38.7 总结
第39章 对话框基础知识
39.1 对话框的基本原理
39.1.1 输入焦点
39.1.2 阻塞式和非阻塞式对话框
39.1.3 对话框过程函数
39.1.4 对话框消息
39.2 创建对话框
39.2.1 资源表
39.2.2 对话框过程函数
39.2.3 初始化对话框
39.2.4 定义话框行为
39.3 对话框API
39.4 总结
第40章 BUTTON-按钮控件
40.1 按钮控件介绍
40.1.1 按钮支持的通知代码
40.1.2 按钮支持键盘反应
40.2 官方WIDGET_SimpleButton实例
40.3 官方WIDGET_PhoneButton实例
40.4 对话框上使用按钮控件
40.5 总结
第41章 CHECKBOX-复选框控件
41.1 复选框控件介绍
41.1.1 复选框支持的通知代码
41.1.2 按钮支持键盘反应
41.2 官方WIDGET_CheckBox实例
41.3 总结
第42章 DROPDOWN-下拉列表控件
42.1 下拉列表控件介绍
42.1.1 下拉列表支持的通知代码
42.1.2 下拉列表支持的键盘反应
42.2 官方WIDGET_Dropdown实例
42.3 对话框上使用下拉列表控件
42.4 总结
第43章 EDIT-编辑控件
43.1 编辑控件介绍
43.1.1 编辑框支持的通知代码
43.1.2 编辑框支持的键盘反应
43.2 官方WIDGET_Edit实例
43.3 对话框上使用编辑框控件
43.4 总结
第44章 FrameWin-框架窗口控件
44.1 框架窗口控件介绍
44.1.1 框架窗口的结构
44.2 官方WIDGET_FrameWin实例
44.3 总结
第45章 GRAPH-图形控件
45.1 图形控件介绍
45.1.1 图形控件的结构
45.1.2 创建和删除图形小工具
45.1.3 绘制过程
45.1.4 支持的曲线类型
45.2 官方WIDGET_GraphYT实例
45.3 使用官方GUIBulder建立Graph控件
45.4 总结
第46章 HEADER-标题控件
46.1 标题控件介绍
46.2 官方WIDGET_Header实例
46.3 使用官方GUIBulder建立HEADER控件
46.4 总结
第47章 LISTBOX-列表框控件
47.1 列表框控件介绍
47.1.1 列表框支持的通知代码
47.2 官方WIDGET_ListBox实例
47.3 对话框上使用列表框控件
47.4 总结
第48章 MENU-菜单控件
48.1 列表框控件介绍
48.1.1 菜单消息
48.1.2 数据结构
48.1.3 菜单支持键盘反应
48.2 官方WIDGET_Menu实例
48.3 使用官方GUIBulder建立MENU控件
48.4 总结
第49章 MESSAGEBOX-消息框控件
49.1 消息框控件介绍
49.2 官方DIALOG_MessageBox实例
49.3 官方DIALOG_MessageBoxUser实例
49.4 总结
第50章 MULTIEDIT-多行文本控件
50.1 多行文本控件介绍
50.1.1 多行文本支持的通知代码
50.1.2 多行文本支持的键盘反应
50.2 官方WIDGET_Multiedit实例
50.3 使用uCGUIBulder建立多行文本控件
50.4 总结
第51章 MULTIPAGE-多页控件
51.1 多页控件介绍
51.1.1 多页支持的通知代码
51.1.2 多页支持的键盘反应
51.2 官方WIDGET_Multipage实例
51.3 使用官方GUIBulder建立多页控件
51.4 总结
第52章 PROGBAR-进度条控件
52.1 进度条控件介绍
52.2 官方WIDGET_Multipage实例
52.3 使用uCGUIBulder建立进度条控件
52.4 总结
第53章 RADIO-单选按钮控件
53.1 进度条控件介绍
53.1.1 单选按钮支持的通知代码
53.1.2 单选按钮支持的键盘反应
53.2 官方DIALOG_Radio实例
53.3 使用官方GUIBulder建立单选按钮控件
53.4 总结
第54章 SCROLLBAR-滚动条控件
54.1 滚动条控件介绍
54.1.1 滚动条支持的通知代码
54.1.2 滚动条支持的键盘反应
54.2 官方WIDGET_Scrollbar实例
54.3 使用官方GUIBulder建立单选按钮控件
54.4 总结
第55章 SLIDER-滑块控件
55.1 滑块控件介绍
55.1.1 滑块支持的通知代码
55.1.2 滑块支持的键盘反应
55.2 官方DIALOG_SliderColor实例
55.3 使用官方GUIBulder建立单选按钮控件
55.4 总结
第56章 TEXT-文本控件
56.1 文本控件介绍
56.2 使用官方GUIBulder建立文本控件
56.3 总结
第57章 WINDOW-窗口控件
57.1 窗口控件介绍
57.2 官方WIDGET_Window实例
57.3 总结
第58章 SPINBOX控件
58.1 SPINBOX控件介绍
58.1.1 SPINBOX支持的通知代码
58.1.2 SPINBOX支持的键盘反应
58.2 官方WIDGET_Spinbox实例
58.3 使用官方GUIBulder建立SPINBOX控件
58.4 总结
第59章 LISTVIEW控件
59.1 LISTVIEW控件介绍
59.1.1 LISTVIEW支持的通知代码
59.1.2 LISTVIEW支持的键盘反应
59.2 官方WIDGET_ListView实例
59.3 使用官方GUIBulder建立LISTVIEW控件
59.3.1 第一步:添加LISTVIEW控件
59.3.2 第二步:添加第一行的三个元素
59.3.3 第三步:添加Column和Row
59.4 总结
第60章 如何在对话框上绘制2D图形
60.1 使用uCGUIBuler绘制2D图形
60.1.1 第一步:建立如下界面
60.1.2 第二步:添加水平和垂直线
60.1.3 第三步:将生成代码添加到模拟器中显示
60.2 总结
第61章 文档更新记录
武武汉汉安安富富莱莱电电子子有有限限公公司司 WWWWWW..AARRMMFFLLYY..CCOOMM 安安富富莱莱 SSTTMM3322--VV55 开开发发板板 SSTTeemmWWiinn 教教程程 安安富富莱莱SSTTMM3322--VV55开开发发板板 SSTTeemmWWiinn 教教程程 文档版本:V1.0 发布日期:2014-05-07 安安富富莱莱电电子子 WWWWWW..AARRMMFFLLYY..CCOOMM 第第 11 页页 共共 557744 页页
武武汉汉安安富富莱莱电电子子有有限限公公司司 WWWWWW..AARRMMFFLLYY..CCOOMM 安安富富莱莱 SSTTMM3322--VV55 开开发发板板 SSTTeemmWWiinn 教教程程 声声 明明 本本文文档档的的版版权权归归武武汉汉安安富富莱莱电电子子有有限限公公司司所所有有。。任任何何公公司司或或者者个个人人 未未经经许许可可,,不不得得将将本本文文档档用用于于商商业业目目的的。。 原原创创声声明明以以及及参参考考资资料料来来源源::  本本文文档档由由安安富富莱莱电电子子原原创创  随随教教程程发发布布的的 VV550000--556600 例例子子都都是是安安富富莱莱电电子子原原创创  教教程程中中的的部部分分介介绍绍来来自自 SSEEGGGGEERR 官官方方的的 eemmWWiinn 手手册册  字字体体专专题题中中的的部部分分知知识识点点来来自自 UUCCGGUUII 论论坛坛、、百百度度百百科科和和 wwiikkii 百百科科  每每期期教教程程一一般般会会讲讲解解两两个个例例子子,,一一个个例例子子是是 SSEEGGGGEERR 官官方方的的,,一一个个 是是我我们们原原创创的的。。SSEEGGGGEERR 的的例例子子只只做做知知识识点点讲讲解解,,不不可可直直接接装装入入开开 发发板板运运行行。。我我们们原原创创的的例例子子可可以以直直接接下下载载到到开开发发板板运运行行。。 第第 22 页页 共共 557744 页页
武武汉汉安安富富莱莱电电子子有有限限公公司司 WWWWWW..AARRMMFFLLYY..CCOOMM 安安富富莱莱 SSTTMM3322--VV55 开开发发板板 SSTTeemmWWiinn 教教程程 教教程程使使用用说说明明 本本教教程程配配套套的的硬硬件件开开发发平平台台是是安安富富莱莱电电子子自自主主设设计计的的 SSTTMM3322--VV55 开开发发板板。。安安富富莱莱其其他他系系列列的的 SSTTMM3322 开开发发板板也也可可以以使使用用这这个个手手册册,,我我们们 的的论论坛坛 wwwwww..aarrmmffllyy..ccoomm 上上有有移移植植好好的的工工程程。。不不过过需需要要大大量量动动态态内内存存 的的例例子子是是无无法法运运行行的的。。 使使用用本本教教程程前前,,请请先先按按照照第第三三章章的的教教程程进进行行触触摸摸校校准准,,将将触触摸摸参参数数 保保存存到到 EEEEPPRROOMM 里里面面,,后后面面所所有有的的例例子子都都会会自自动动加加载载触触摸摸参参数数。。  基基本本涵涵盖盖了了所所有有 SSTTeemmWWiinn 知知识识点点及及其其控控件件的的使使用用,,部部分分复复杂杂的的控控 件件会会在在后后期期升升级级的的教教程程中中增增加加上上去去。。  完完美美解解决决 SSTTeemmWWiinn 支支持持的的 BBMMPP、、JJPPGG、、GGIIFF、、PPNNGG 图图片片显显示示。。  完完美美解解决决 SSTTeemmWWiinn 支支持持的的字字体体显显示示,,XXBBFF、、SSIIFF、、矢矢量量字字体体显显示示。。  教教程程中中提提供供的的 eemmWWiinn 的的移移植植方方法法,,可可以以完完美美支支持持各各种种显显示示屏屏,,不不 受受官官方方显显示示驱驱动动限限制制。。  所所 有有 的的 控控 件件 教教 程程 都都 有有 配配 套套 使使 用用 GGUUIIBBuullddeerr55..2222 和和 uuCCGGUUIIBBuullddeerr44..00 建建立立的的例例子子。。  大大部部分分例例子子均均支支持持在在模模拟拟器器、、MMDDKK 和和 IIAARR 三三个个版版本本上上面面运运行行。。 SSTTMM3322--VV55 开开发发板板相相关关资资料料地地址址::  hhttttpp::////bbbbss..aarrmmffllyy..ccoomm//rreeaadd..pphhpp??ttiidd==11113399  hhttttpp::////bbbbss..aarrmmffllyy..ccoomm//rreeaadd..pphhpp??ttiidd==11228855  hhttttpp::////bbbbss..aarrmmffllyy..ccoomm//rreeaadd..pphhpp??ttiidd==22110033 第第 33 页页 共共 557744 页页
武武汉汉安安富富莱莱电电子子有有限限公公司司 WWWWWW..AARRMMFFLLYY..CCOOMM 安安富富莱莱 SSTTMM3322--VV55 开开发发板板 SSTTeemmWWiinn 教教程程 第第11章章 SSTTeemmWWiinn介介绍绍 本期教程开始带领大家了解一下 STemWin 的基本知识,其实确切的讲应该叫 emWin 基础知识,由于 教程使用的开发板是 ST 的微控制器,所以就把名字统一命名成 STemWin(为什么叫 STemWin,在下面 会有详细的讲解)。 1.1 STemWin,emWin,μCGUI 之间的关系 1.2 SEGGER 公司介绍 1.3 STemWin 介绍 1.4 STM32F103 和 407 跑 STemWin 性能测试 1.5 STemWin 论坛 1.6 总结 11..11 SSTTeemmWWiinn,,eemmWWiinn,,μμCCGGUUII之之间间的的关关系系 这个放在最开头进行说明,因为很多的初学者比较的迷惑。 对于一些刚学 GUI 的用户来说,知道μCGUI 的比较多,而不知道所谓的 emWin 或者 STemWin。这 个并不奇怪,主要是因为大部分人只知道 SEGGER 公司的做的 JLINK,而不知道他们还有 RTOS 和相关的 中间件(中间件的意思就是基于 RTOS 的文件系统,GUI,USB 主机和设备协议栈等)。 1.1.1 μμCGUI在国内比较火的原因 μCGUI 在国内前几年比较火的原因有三点:  一个是μCOS-II 在国内的推广,自从 Micrum 公司出的那本《嵌入式实时操作系统μCOS-II》发布之后, 国内关于μCOS-II 的资料就是普天盖起,再加上各种培训机构和开发板的推广,μCOS-II 就在国内火起 来了。μCOS-II 火的同时,它配套的中间件,特别是μCGUI 就跟着在国内火了起来。  前几年国内有一个μCGUI 的论坛,这个论坛在国内的μCGUI 方面应该算是做得最好的,特别是那个站 长在μCGUI 方面的研究,这位站长对于μCGUI 在国内的发展功不可没。  还有一个原因就是μCGUI 是带有源码的,很多时候可以通过修改部分的源码实现一些特殊的功能,现 在网上流传的μCGUI 的源码已经不知道经过多少人的手被修改过,最原始的的代码已经在官网上面找 不到了。 第第 44 页页 共共 557744 页页
武武汉汉安安富富莱莱电电子子有有限限公公司司 WWWWWW..AARRMMFFLLYY..CCOOMM 安安富富莱莱 SSTTMM3322--VV55 开开发发板板 SSTTeemmWWiinn 教教程程 1.1.2 emWin和μμCGUI的关系 首先要明白,这两个 GUI 是一个东西。最初这个 GUI 就是 SEGGER 公司的,然后以什么的方式授权给 μCGUI 就不清楚了。现在 SEGGER 公司是这个 GUI 的主要推动者,已经将其授权给了多个芯片生产厂家。 1.1.3 STemWin和emWin的关系 STemWin 是 SEGGER 公司授权给 ST(意法半导体)的。使用 ST 芯片的用户可以免费使用 STemWin。 其实不光授权给了 ST,还有 NXP,Energy Micro 等。凡是使用这些芯片厂商生产的处理器都可以免费的 使用 emWin。但是出于一定的保护措施,使用 STemWin 的库是不能用在其它芯片厂商的处理器上面的。 因为在工程初始化 STemWin 前要使能 CRC 校验。如果没有使能,STemWin 是启动不起来的。KEIL MDK 的安装目录里面也带有 emWin 软件包,这个软件包也不是可以直接使用的,用户需要给 KEIL MDK 注册 RL-ARM 才可以使用。 这里 STemWin 还针对 ST 的微控制器做了专门的优化,比如在使用 ST 的 F4XX 微控制器带 FPU 的芯 片时,STemWin 在需要浮点处理的地方专门做了优化。 1.1.4 emWin5.xx版本和以前版本的不同 emWin 发展到 5.0 版本以后已经产生了很大的更新,特别是底层驱动方面。emWin5.xx 版本向下完 全的兼容低版本,当然包括μCGUI5.xx 以下的版本,也就说如果用户有在μCGUI5.xx 以下版本建立的工程, 完全可以用在高版本上面(条件是没有修改过源码)。这里不建议初学者修改源代码,修改过后会破坏现有 的机制。在以后的使用中会养成不好的习惯,只要某些功能无法实现就去修改源码,随着修改的增多会严重 的破坏现有的机制。 emWin5.xx 以后的版本只有库,没有源码。对于一些想研究源码的,可以看早期的版本,了解一下通 讯机制。不过对于大多数从应用角度出发的,完全没有必要学习源码,源码内容太多。对于一些无法实现的 功能,在 emWin5.xx 上面得到了很大的改善,基本不需要修改源码。如果通过各种方法实在无法实现,完 全可以使用 emWin 支持的用户控件设计方法做一个符合要求的。 11..22 SSEEGGGGEERR公公司司介介绍绍 SEGGER 公司应该算是一家老牌的调试工具以及 RTOS 及中间件的生产商。SEGGER 公司成立于 1997 年,到现在的 2014 年,有差不多 17 年的历史了,这家公司主要有两个 office,一个是在德国的 Hilden, 另个在美国的 Massachusetts。官网还有一个他们工作地方的照片,看着很不错,我这里也把这个照片贴 上。 第第 55 页页 共共 557744 页页
武武汉汉安安富富莱莱电电子子有有限限公公司司 WWWWWW..AARRMMFFLLYY..CCOOMM 安安富富莱莱 SSTTMM3322--VV55 开开发发板板 SSTTeemmWWiinn 教教程程 SEGGER 公司的产品主要有三个方向,分别如下: 1.2.1 RTOS及其中间件 SEGGER 公司的 RTOS 是 embOS,在国内知道的人可能比较少。SEGGER 做的 embOS 和中间件都 是以库的形式供用户下载的,除非购买了使用权。产品主要如下:  embOS (Real Time Operating System)  embOS/IP (TCP/IP Stack)  emWin (Graphic Software & GUI)  emFile (File System)  emUSB Device (USB Device Stack)  emUSB Host (USB Host Stack)  emModbus(Modbus Stack) emModbus 是今年(2014 年)刚刚发布的。 第第 66 页页 共共 557744 页页
武武汉汉安安富富莱莱电电子子有有限限公公司司 WWWWWW..AARRMMFFLLYY..CCOOMM 安安富富莱莱 SSTTMM3322--VV55 开开发发板板 SSTTeemmWWiinn 教教程程 1.2.2 J-Link 调试工具 J-Link 应该大家都不陌生,它是有 SEGGER 公司设计的。具体的 J-Link 产品有好几款,具体如下: J - Link PRO J - Link ULTRA+ J - Link PLUS J - Link J - Trace Cortex-M3 J - Trace ARM       1.2.3 Production Programmers 这个工具在国内用的比较少,主要如下几款产品:  Flasher ARM  Flasher RX  Flasher STM8  Flasher ST7  Flasher 5  Flasher 5 PRO 上面说的这三项应该算是 SEGGER 公司的主营产品,更详细的可以上面他们的官网 www.segger.com 进行了解。 11..33 SSTTeemmWWiinn介介绍绍 emWin5.xx 版本设计出来的界面还是非常漂亮的,先贴几个相关的设计图片,让大家有一些感官的认 识。 1.3.1 STemWin设计界面  第一幅是官方设计的图片 第第 77 页页 共共 557744 页页
武武汉汉安安富富莱莱电电子子有有限限公公司司 WWWWWW..AARRMMFFLLYY..CCOOMM 安安富富莱莱 SSTTMM3322--VV55 开开发发板板 SSTTeemmWWiinn 教教程程 整体来说,这些图片还是非常漂亮的,不过这些界面不是用专门的控件显示出来的,使用的 2D 绘图配 合内存设备管理实现的。  下面的是在 STM32-V5 开发板上面实现的界面 总的来说这些界面还是非常漂亮的,关于 STM32-V5 开发板更详细的资料可以看如下两个地址: http://bbs.armfly.com/read.php?tid=1285 http://bbs.armfly.com/read.php?tid=1139 第第 88 页页 共共 557744 页页
分享到:
收藏