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

旺宝电子   2015-3-14 15:18 楼主
看完本教程,你可以得到的是:使用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);      //延时

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

http://openmcu.taobao.com]77[/url]

回复评论 (13)

LCD 液晶屏是 Liquid Crystal Display 的简称,LCD 的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。
监控工程
点赞  2015-3-14 15:46
好家伙
点赞  2015-3-16 00:37
感谢分享。
我的博客
点赞  2015-3-16 08:24
引用: 阿陆来 发表于 2015-3-14 15:46
LCD 液晶屏是 Liquid Crystal Display 的简称,LCD 的构造是在两片平行的玻璃当中放置液态的晶体,两片玻璃中间有许多垂直和水平的细小电线,透过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生画面。



http://openmcu.taobao.com]77[/url]
点赞  2015-3-16 11:46
第二节 控件—进度条


图片4.jpg

硬件:LPC1768宝马开发板+3.2寸LCD屏
本例程现像: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循环,依次设置进度条的值。
http://openmcu.taobao.com]77[/url]
点赞  2015-3-17 14:12
第三节 控件—文本编辑框
图片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个按键,并设置相应的数字。
最后,循环检测按键,并把按键值写到文本编辑框上。

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

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

第五节 复选框和单选按钮
图片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
回调响应函数

http://openmcu.taobao.com]77[/url]
点赞  2015-3-24 14:26
第六节 列表框
图片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();函数的不同之处在于,一个是非阻塞式对话框,一个是阻塞式对话框。
对话框可以分为阻塞式对话框和非阻塞式对话框两种。阻塞式对话框是指用户只能在当前的窗体中进行操作,在该窗体没有关闭之前不能切换到其他的窗体。非阻塞式对话框是指当前的所操作的窗体可以切换。

http://openmcu.taobao.com]77[/url]
点赞  2015-3-25 14:28
第七节 文本框、文本编辑框、滚动条、下拉框
图片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
下拉框改变时,文本框和文本编辑框做响应。

http://openmcu.taobao.com]77[/url]
点赞  2015-3-26 14:14
第八节 滑动条
图片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
读取滑动条的值,并显示。

http://openmcu.taobao.com]77[/url]
点赞  2015-3-27 10:16
1768主图副本.jpg



1768全部升级,修改了部分
http://openmcu.taobao.com]77[/url]
点赞  2015-4-10 10:43
另外1768可以配书本
书名:“大学电子信息科学与技术英汉实验丛书嵌入式系统设计实验”

http://openmcu.taobao.com]77[/url]
点赞  2015-5-19 15:39
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复