查看: 7035|回复: 8

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

[复制链接]

该用户从未签到

发表于 2015-3-14 15:19:40 | 显示全部楼层 |阅读模式
分享到:
本帖最后由 一座城 于 2015-3-17 14:24 编辑

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

控件—按键

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

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

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

关于面板任务:
图片2.png
面板任务后,首先选定颜色和背景色,然后清屏,打上字母。
然后建立两个按键,分别为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:
}
此处为读到按下的按键值,并响应对应的动作。

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

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

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

回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2015-3-17 14:23:34 | 显示全部楼层
第二节 控件—进度条
图片4.jpg
硬件:LPC1768宝马开发板+3.2LCD
本例程现像:LCD屏显示一个进度条,并演示进度。
关于uCGUI进度条的介绍,在官方应手册中有以下函数供调用:
图片3.png
图片2.png
下面看一下程序
本程序是在第一篇面板任务中,做了一个改动,本例程只写改动的部分,其他地方,不再赘述。
图片1.png
面板任务后,首先选定颜色和背景色,然后清屏,打上字母。
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循环,依次设置进度条的值。

回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2015-3-19 10:58:57 | 显示全部楼层
第三节 控件—文本编辑框

图片4.jpg
硬件:LPC1768宝马开发板+3.2LCD
本例程现像:LCD屏显示一个文本框,配合按键演示文本编辑框的使用。

关于uCGUI文本编辑框的介绍,在官方应手册中有以下函数供调用:
图片3.png
下面看一下程序
本程序是在第一节面板任务中,做了一个改动,本例程只写改动的部分,其他地方,不再赘述。
图片2.png

图片1.png
面板任务首先刷屏,

    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个按键,并设置相应的数字。
最后,循环检测按键,并把按键值写到文本编辑框上。

回复 支持 反对

使用道具 举报

该用户从未签到

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

回复 支持 反对

使用道具 举报

该用户从未签到

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

回复 支持 反对

使用道具 举报

该用户从未签到

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

回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2015-3-26 14:15:42 | 显示全部楼层
第七节 文本框、文本编辑框、滚动条、下拉框
图片12.jpg
硬件:LPC1768宝马开发板+3.2LCD
本例程现像:LCD屏显示一个窗口,并在窗口中创建文本框、文本编辑框、滚动条、下拉框,通过下拉框,选中不同的文件,在文本编辑框中显示对应的内容。
uCGUIBuild4.0设计的框体图如下:
图片11.png
关于uCGUI 文本编辑框的介绍,网上搜索有以下函数供调用:
图片10.png
关于uCGUI 滚动条的介绍,手册中有以下函数供调用:
图片9.png
关于uCGUI 文本控件的介绍,手册中有以下函数供调用:
图片8.png
关于uCGUI 下拉框的介绍,库中有以下函数供调用:
图片7.png
本程序依然承接前面的例程,只讲面板任务中改动的部分
图片6.png
定义全局参数,供下面下拉框,文本编辑框调用。
图片5.png
对话框控件初始化
图片4.png

图片3.png
回执函数,用于响应下拉框当前选择项的改变。
图片2.png
初始化对话框窗口。获得各各控件的句柄。
图片1.png
下拉框改变时,文本框和文本编辑框做响应。

回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2015-3-27 10:17:20 | 显示全部楼层
第八节 滑动条
图片9.jpg
硬件:LPC1768宝马开发板+3.2LCD
本例程现像:LCD屏显示一个窗口,并在窗口中创建滑动条,滑动滑动条,改变背景色值。
uCGUIBuild4.0设计的框体图如下:
图片8.png
关于uCGUI 滑动条的介绍,手册中有以下函数供调用:
图片7.png
本程序依然承接前面的例程,只讲面板任务中改动的部分。
图片6.png
本段定义全局变量,并设置对话框控件参数
图片5.png
初始化窗体及控件。
图片4.png

图片3.png
窗体回调函数
图片2.png
建立面板任务及非阻塞对话框。
图片1.png
读取滑动条的值,并显示。

回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2016-9-6 09:18:10 | 显示全部楼层
感谢楼主的分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /1 下一条



手机版|小黑屋|与非网

GMT+8, 2024-4-24 23:37 , Processed in 0.177006 second(s), 32 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.