Upload
duongtuyen
View
284
Download
3
Embed Size (px)
Citation preview
Mcuzone Application Notes
MDK905-EK 开发板应用笔记 1 / 13 MAN3503_CH
基于 MDK905-EK 开发板的 ucos2+ucgui
应用程序演示-UART 篇
文档编号 MAN3503_CH
文档版本 Rev. A
文档摘要 基于 MDK905-EK 开发板的 ucos2+ucgui 应用程序演示-UART 篇
关键词 MDK905-EK,nuvoton,N32905,ucos2,ucgui
创建日期 2014-06-10 创建人员 谢亚泽 审核人员 Hotislandn
文档类型 开发板配套文档
版权信息 Mcuzone 产品配套文档,仅随产品发布
杭州安米电子有限公司
浙江省杭州市登云路 639 号 2B143
电话:4008-51-8051
www.mcuzone.com www.atarm.com
Mcuzone Application Notes
MDK905-EK 开发板应用笔记 2 / 13 MAN3503_CH
版 权 声 明
本手册版权归属杭州安米电子有限公司(以下简称“安米电子”)所有, 并保
留一切权利。非经安米电子同意(书面形式),任何单位及个人不得擅自摘录本手
册部分或全部,违者我们将追究其法律责任。
更新历史
版本 时间 更新 作者
Rev. A 2014-06-10 初始创建 谢亚泽
Mcuzone Application Notes
MDK905-EK 开发板应用笔记 3 / 13 MAN3503_CH
目 录
一、文档概述 ............................................................................................................................................................. 4
二、程序功能 ............................................................................................................................................................. 4
三、程序说明 ............................................................................................................................................................. 5
3.1 主任务和执行回调函数的任务 .................................................................................................................. 5
3.2 任务 UartTask 及界面回调函数 .................................................................................................................. 6
3.3 对话框初始化 .............................................................................................................................................. 8
3.4 对话框重绘 .................................................................................................................................................. 9
3.5 按钮释放消息处理 .................................................................................................................................... 10
附言 ........................................................................................................................................................................... 13
Mcuzone Application Notes
MDK905-EK 开发板应用笔记 4 / 13 MAN3503_CH
一、文档概述
1、介绍
本文档介绍了基于 MDK905-EK开发板 ucos2+ucgui的 UART串口收发程序,该程序在 ucgui
界面上显示串口接收到的字符,同时可以发送特定的字符,并可以通过界面的选项来修改串口
的配置。
2、要求
MDK905-EK 开发板一套
装有 KEIL MDK 4 软件的 PC 一台
二、程序功能
本程序是在 ucGUI_Demo 工程(ucos2_ucgui)的基础上修改而来。程序保留了原工程的初
始化部分,还用到了原工程的触摸屏校准和触摸屏任务,在此基础上,本程序根据 ucgui 在多
任务下的运行特点添加了自定义的相关任务和代码,实现了一个简单的串口收发工具。程序运
行界面如下图所示:
Mcuzone Application Notes
MDK905-EK 开发板应用笔记 5 / 13 MAN3503_CH
在关闭串口的情况下(【CLOSE】按钮被按下),可以配置串口参数即通过界面右侧的
下拉框选择串口的波特率(Baudrate)、数据位(DataBits)、停止位(StopBits)和校验(Parity),
配置好后,点击【OPEN】按钮,程序将实时监测串口 uart0(开发板底板上 6pin 白色端子
引出的高速串口,具体串口引脚定义见用户手册或原理图,此处作普通串口用)的数据收
发。接收到的数据将被显示在 Receive area 中,点击【Send】按钮,可以将 Send area 里面
的字符串发送出去,左下角的 RX 和 TX 区域分别对接收和发送计数,点击【Clear Count】
按钮将计数清零,右下角将实时显示内部 RTC 的时间。
三、程序说明
3.1 主任务和执行回调函数的任务
液晶屏和 ucgui 的初始化都是在主任务里进行的,此外,主任务还新建了触摸任务和 2 个
自定义任务 UartTask 和 GUI_Task,如下图所示:
Mcuzone Application Notes
MDK905-EK 开发板应用笔记 6 / 13 MAN3503_CH
任务 UartTask 用于在 ucgui 界面控制串口 uart0 的数据收发,任务 GUI_Task 用于执行 ucgui 的
回调函数(通常是执行窗口重绘),其代码如下图所示:
3.2 任务 UartTask 及界面回调函数
在任务 UartTask 里,程序首先创建本程序的界面,然后初始化内部 RTC,创建用以表示串
口接收到数据的信号量,最后程序将等待信号量 1 秒,若收到信号量,则将串口接收到的数据
发送到接收区的编辑框控件,随后程序将读取、显示 RTC 时间,然后又等待信号量 1 秒,如
此一直循环,其代码如下图所示:
Mcuzone Application Notes
MDK905-EK 开发板应用笔记 7 / 13 MAN3503_CH
在界面的回调函数里,程序将处理对话框的初始化、重绘和 4 个按钮的释放消息,如下图
所示:
Mcuzone Application Notes
MDK905-EK 开发板应用笔记 8 / 13 MAN3503_CH
3.3 对话框初始化
一般地,可以在对话框资源表里定义一些控件的属性,如:名称、标识(ID)、位置、尺
寸等等,如下图所示:
但是,还有一些控件性质是无法在资源表里定义的,例如:控件字体、颜色、缓冲区大小、选
项等等,对于这些性质,我们可以在初始化对话框时对其进行定义,本程序的对话框初始化函
数就是完成这样的功能,下面选取几段代码进行说明。
1、下图的代码段设置 FRAMEWIN 框架窗口的显示特性,从第二行代码开始执行的功能
依次是:设置标题栏高度、设置窗口激活时标题栏颜色、设置客户区颜色、设置(标题栏)文
字对齐方式、设置(标题栏)字体、设置窗口是否可以移动、设置窗口是否激活。
Mcuzone Application Notes
MDK905-EK 开发板应用笔记 9 / 13 MAN3503_CH
2、下面的代码设置 DROPDOWN 下拉框控件,从第二行代码开始执行的功能依次是:添
加选项(”7”)、添加选项(”8”)、设置被选中的选项(第 1 项)。用下图中所示的方法给
DROPDOWN 控件添加选项时,最开始设置的选项将被当作第 0 项,往后添加的选项其编号依
次递增,所以下图中选中的选项就是”8”。
3、下面的代码设置 BUTTON 按钮控件,从第二行代码开始执行的功能依次是:设置字体、
设置是否按下(是)、禁止窗口。
3.4 对话框重绘
通常,在对话框重绘里面,用户可以根据需要修改控件的显示内容,或者显示用户自定义
的内容,如:画点、线、圆、显示数字、字符、字符串等等。在本程序里,我们在重绘里显示
RTC 时间和串口收发计数值,如下图所示:
Mcuzone Application Notes
MDK905-EK 开发板应用笔记 10 / 13 MAN3503_CH
3.5 按钮释放消息处理
程序界面有 4 个按钮,分别为【OPEN】【CLOSE】【Send】【Clear Count】,下面分别
对其功能进行说明。
1、【OPEN】按钮
【OPEN】按钮释放消息处理函数为 OnButton2Released,主要是设置相关控件的状态和根
据选择设置并初始化串口。下图所示的代码段设置相关控件的状态:
下图所示的代码段中,程序有下拉框的选项设置校验位,然后选择串口,安装中断服务函数,
初始化串口,使能串口中断。
Mcuzone Application Notes
MDK905-EK 开发板应用笔记 11 / 13 MAN3503_CH
串口接收中断处理函数主要是将串口接收到的数据拷贝到接收缓冲区,并发出信号量,其
代码如下图所示:
2、【CLOSE】按钮
【CLOSE】按钮释放消息处理函数为 OnButton3Released,执行的功能与【OPEN】按钮执
行的功能相反,主要是将相关的控件设置为与【OPEN】里相反的状态,代码如下图所示:
Mcuzone Application Notes
MDK905-EK 开发板应用笔记 12 / 13 MAN3503_CH
3、【Send】按钮
【Send】按钮释放消息处理函数为 OnButton0Released,主要功能就是在串口打开的情况下
将发送框里的字符串通过串口 uart0 发送出去,并更新发送计数值,代码如下图所示:
4、【Clear Count】按钮
【Clear Count】按钮释放消息处理函数为 OnButton1Released,主要是将发送和接收计数清
零,代码如下图所示:
Mcuzone Application Notes
MDK905-EK 开发板应用笔记 13 / 13 MAN3503_CH
附言
感谢您使用杭州安米电子有限公司的产品,如果你对我们的用户手册文档有什么不清楚
的,或者有什么意见建议的,可以通过以下方式联系我们:
电话:4008-51-8051
邮件:[email protected] [email protected]
论坛:www.mcuzone.com/bbs
QQ 技术支持群:
技术支持群 #1: 346072532 (客户专用,加群请注明购买者姓名)
新唐 N329 群 #1: 346072532