打印
[LPC]

NXP LPC1768宝马开发板 第三十五章 宝马1768——UCOSII+UCGUI控件...

[复制链接]
1632|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 szopenmcu 于 2015-3-19 10:53 编辑

看完本教程,你可以得到的是:使用UCGUI开发自己想要的界面。
开始前的假设:你已移好了UCOSII+UCGUI。(如果没有,本文件夹有一个移好的金龙107_UCOSI2.91+UCGUI3.90A,后面的应用也以此模板来解说)

控件—按键

硬件:LPC1768宝马开发板+3.2LCD
本例程现像:LCD屏建立两个按键,一个按键名为ON并控制LED灯打开;另一个按键名为OFF并控制LED灯关闭。

关于uCGUI按件的介绍,在官方应手册中有以下函数供调用:

下面看一下例程:
建立主函数并建立两个任务:面板任务和触摸任务。
面板任务主要负责,事件处理;触摸任务主要负责:检测触摸及绘制控件。

关于面板任务:
面板任务后,首先选定颜色和背景色,然后清屏,打上字母。
然后建立两个按键,分别为BUTTON1BUTTON2
button1=BUTTON_Create(60,180,60,60, GUI_ID_button1,BUTTON_CF_SHOW );    //建立一个按键
button2=BUTTON_Create(120,180,60,60, GUI_ID_button2,BUTTON_CF_SHOW );

我们程序为在坐标点(60180)处,建立一个60*60的按键1
在坐标点(120180)处,建立一个60*60的按键2

然后继续下面看程序
    BUTTON_SetText(button1, "ON");        //设置按键文字
    BUTTON_SetText(button2, "OFF");
在按键句柄上设置要显示的字,例如按键1显示“ON”,按键2显示“OFF”。

然后继续下面看程序

LED_Configuration();               //LED初始化

然后继续下面看程序
r = GUI_GetKey();         //得到按键值
此处读到得到的按键值,即GUI_ID_button1 GUI_ID_button2
Swich(r)
{
Case GUI_ID_button1:
}
此处为读到按下的按键值,并响应对应的动作。

关于触摸任务
//GUI_CURSOR_Show();   //注释“鼠标显示”若需要显示鼠标可以把注释去掉

GUI_TOUCH_Exec();   //触摸检测
GUI_Exec();         //界面绘制检测
OSTimeDly(15);      //延时

此处为触摸检测及界面绘制,当有按键按下与释放,会有相应的图面效果。

相关帖子

沙发
szopenmcu|  楼主 | 2015-3-17 14:16 | 只看该作者
本帖最后由 szopenmcu 于 2015-3-19 10:53 编辑

第二节 控件—进度条

硬件:LPC1768宝马开发板+3.2LCD
本例程现像:LCD屏显示一个进度条,并演示进度。

关于uCGUI进度条的介绍,在官方应手册中有以下函数供调用:

下面看一下程序
本程序是在第一篇面板任务中,做了一个改动,本例程只写改动的部分,其他地方,不再赘述。


面板任务后,首先选定颜色和背景色,然后清屏,打上字母。

ahProgBar = PROGBAR_Create(  60, 180, 100,20,WM_CF_SHOW );   
//建立一个进度条
PROGBAR_SetBarColor(ahProgBar,0,GUI_GREEN);                  
//设置进度条的左部分色值
PROGBAR_SetBarColor(ahProgBar,1,GUI_RED);                    
//设置进度条的右部分色值
PROGBAR_SetTextColor(ahProgBar,0,GUI_BLUE);                  
//设置进度条字体的右部分色值
PROGBAR_SetTextColor(ahProgBar,1,GUI_BLACK);                  
//设置进度条字体的右部分色值   

然后建立一个进度条并设置想要的颜色值。

LED_Configuration();               //LED初始化

然后继续下面看程序

   for(i = 0; i < 100 ; i++)
    {
        PROGBAR_SetValue(ahProgBar,i);       //设置进度条数值
        OSTimeDly(50);
    }


写一个for循环,依次设置进度条的值。









使用特权

评论回复
板凳
szopenmcu|  楼主 | 2015-3-19 10:57 | 只看该作者
szopenmcu 发表于 2015-3-17 14:16
第二节 控件—进度条
硬件:LPC1768宝马开发板+3.2寸LCD屏本例程现像:LCD屏显示一个进度条,并演示进度。 ...

第三节 控件—文本编辑框
硬件:LPC1768宝马开发板+3.2LCD
本例程现像:LCD屏显示一个文本框,配合按键演示文本编辑框的使用。
关于uCGUI文本编辑框的介绍,在官方应手册中有以下函数供调用:
下面看一下程序
本程序是在第一节面板任务中,做了一个改动,本例程只写改动的部分,其他地方,不再赘述。
面板任务首先刷屏,
    hEdit = EDIT_Create(  50, 20, 180,25,1,sizeof(aBuffer),WM_CF_SHOW);    //建立一个文本编辑框
    EDIT_SetFont(hEdit,&GUI_Font8x16);     //设置文本编辑框的字体
EDIT_SetTextColor(hEdit,0,GUI_RED);    //设置文本编辑框的字体颜色
然后初始化一个文本编辑框,
    button1=BUTTON_Create(80,118,80,40,GUI_ID_button1,BUTTON_CF_SHOW );    //建立一个按键
button2=BUTTON_Create(80,164,80,40, GUI_ID_button2,BUTTON_CF_SHOW );
button3=BUTTON_Create(80, 210, 80,40, GUI_ID_button3,BUTTON_CF_SHOW );   
button4=BUTTON_Create(80, 256, 80,40, GUI_ID_button4,BUTTON_CF_SHOW );
BUTTON_SetText(button1, "1");        //设置按键文字
BUTTON_SetText(button2, "2");
BUTTON_SetText(button3, "3");        
BUTTON_SetText(button4, "4");
初始化4个按键,并设置相应的数字。
最后,循环检测按键,并把按键值写到文本编辑框上。

使用特权

评论回复
地板
szopenmcu|  楼主 | 2015-3-20 13:59 | 只看该作者
第四节 控件—框架窗口
硬件:LPC1768宝马开发板+3.2LCD
本例程现像:LCD屏显示一个窗口和子窗口,并在子窗口写字符串。
关于uCGUI框架窗口的介绍,在官方应手册中有以下函数供调用:
以上的API接口函数均可在手册中查到,在此不在赘述。
下面例程讲解
此段为回调函数:回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
通俗的讲就是一个特定的格式通道,被层层调用(层层绘图)。
本段是当发生重绘事件时,绘制一个窗口,设置颜色、字体、格式,清屏并写字符。
建立一个框架窗口,本窗口的刷新,在触摸那个任务中被时刻检测刷新。本段为设置框架窗口的颜色、字体、框体格式,并绘制一个子窗口。
面板任务,主要负责刷新背景图,并建立一个框架窗口演示程序。

使用特权

评论回复
5
szopenmcu|  楼主 | 2015-3-24 14:27 | 只看该作者
第五节 复选框和单选按钮
硬件:LPC1768宝马开发板+3.2LCD
本例程现像:LCD屏显示一个窗口,并在窗口中创建复选框和单选按钮,响应一些动作。
开始应用前的话:前面小节,uCGUI都带有响应的动用,那至本节以后的,都需要借助窗口回调函数来响应相应的动作,所以在此介绍一个配合uCGUI做界面的软件—uCGUIBuild4.0。此软件可以生成相应代码,我们只要写入相应的响应既可。例如以下截图
右边是相应的属性,设置窗口大小、颜色值、格式等。
运行以后界面如下:
软件不复杂,耐心看一下,很快就能掌握并应用。
关于uCGUI 复选框和单选按钮的介绍,在官方应手册中有以下函数供调用:
uCGUI说明中有相应的函数使用说明,下面举例看一下应用。
本程序依然承接前面的例程,只讲面板任务中改动的部分
设置对话框中控件的参数
对话框初始化
回调响应函数

使用特权

评论回复
6
szopenmcu|  楼主 | 2015-3-25 14:28 | 只看该作者
第六节 列表框
硬件:LPC1768宝马开发板+3.2LCD
本例程现像:LCD屏显示一个窗口,并在窗口中创建列表框,并依次上下移动。
uCGUIBuild4.0设计的框体图如下:
关于uCGUI 列表框的介绍,在官方应手册中有以下函数供调用:
本程序依然承接前面的例程,只讲面板任务中改动的部分
定义一个列表框句柄,定义窗口架构体及赋予参数。
窗体初始化函数,设置窗体中各各元素及参数。
响应函数,本段只用到初始化。
本段初始化一个非阻塞式对话框窗体。
注意:
GUI_CreateDialogBox();与GUI_ExecDialogBox();函数的不同之处在于,一个是非阻塞式对话框,一个是阻塞式对话框。
对话框可以分为阻塞式对话框和非阻塞式对话框两种。阻塞式对话框是指用户只能在当前的窗体中进行操作,在该窗体没有关闭之前不能切换到其他的窗体。非阻塞式对话框是指当前的所操作的窗体可以切换。

使用特权

评论回复
7
szopenmcu|  楼主 | 2015-3-26 14:13 | 只看该作者
第七节 文本框、文本编辑框、滚动条、下拉框
硬件:LPC1768宝马开发板+3.2LCD
本例程现像:LCD屏显示一个窗口,并在窗口中创建文本框、文本编辑框、滚动条、下拉框,通过下拉框,选中不同的文件,在文本编辑框中显示对应的内容。
uCGUIBuild4.0设计的框体图如下:
关于uCGUI 文本编辑框的介绍,网上搜索有以下函数供调用:
关于uCGUI 滚动条的介绍,手册中有以下函数供调用:
关于uCGUI 文本控件的介绍,手册中有以下函数供调用:
关于uCGUI 下拉框的介绍,库中有以下函数供调用:
本程序依然承接前面的例程,只讲面板任务中改动的部分
定义全局参数,供下面下拉框,文本编辑框调用。
对话框控件初始化
回执函数,用于响应下拉框当前选择项的改变。
初始化对话框窗口。获得各各控件的句柄。
下拉框改变时,文本框和文本编辑框做响应。

使用特权

评论回复
8
szopenmcu|  楼主 | 2015-3-27 10:15 | 只看该作者
第八节 滑动条
硬件:LPC1768宝马开发板+3.2LCD
本例程现像:LCD屏显示一个窗口,并在窗口中创建滑动条,滑动滑动条,改变背景色值。
uCGUIBuild4.0设计的框体图如下:
关于uCGUI 滑动条的介绍,手册中有以下函数供调用:
本程序依然承接前面的例程,只讲面板任务中改动的部分。
本段定义全局变量,并设置对话框控件参数
初始化窗体及控件。
窗体回调函数
建立面板任务及非阻塞对话框。
读取滑动条的值,并显示。

使用特权

评论回复
9
hscaihong| | 2015-8-11 21:45 | 只看该作者
楼主可以不可以把源码上传一下啊?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:专业生产销售STM32开发板,仿真器,http://openmcu.taobao.com/

71

主题

283

帖子

11

粉丝