szopenmcu 发表于 2015-3-14 15:17

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

本帖最后由 szopenmcu 于 2015-3-19 10:53 编辑

看完本教程,你可以得到的是:使用UCGUI开发自己想要的界面。开始前的假设:你已移好了UCOSII+UCGUI。(如果没有,本文件夹有一个移好的金龙107_UCOSI2.91+UCGUI3.90A,后面的应用也以此模板来解说)
控件—按键
硬件:LPC1768宝马开发板+3.2寸LCD屏本例程现像:LCD屏建立两个按键,一个按键名为ON并控制LED灯打开;另一个按键名为OFF并控制LED灯关闭。
关于uCGUI按件的介绍,在官方应手册中有以下函数供调用:
下面看一下例程: 建立主函数并建立两个任务:面板任务和触摸任务。面板任务主要负责,事件处理;触摸任务主要负责:检测触摸及绘制控件。
关于面板任务: 面板任务后,首先选定颜色和背景色,然后清屏,打上字母。然后建立两个按键,分别为BUTTON1和BUTTON2,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 );
我们程序为在坐标点(60,180)处,建立一个60*60的按键1。在坐标点(120,180)处,建立一个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.2寸LCD屏本例程现像: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.2寸LCD屏本例程现像: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.2寸LCD屏本例程现像:LCD屏显示一个窗口和子窗口,并在子窗口写字符串。 关于uCGUI框架窗口的介绍,在官方应手册中有以下函数供调用: 以上的API接口函数均可在手册中查到,在此不在赘述。 下面例程讲解 此段为回调函数:回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。通俗的讲就是一个特定的格式通道,被层层调用(层层绘图)。 本段是当发生重绘事件时,绘制一个窗口,设置颜色、字体、格式,清屏并写字符。 建立一个框架窗口,本窗口的刷新,在触摸那个任务中被时刻检测刷新。本段为设置框架窗口的颜色、字体、框体格式,并绘制一个子窗口。 面板任务,主要负责刷新背景图,并建立一个框架窗口演示程序。

szopenmcu 发表于 2015-3-24 14:27

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

szopenmcu 发表于 2015-3-25 14:28

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

szopenmcu 发表于 2015-3-26 14:13

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

szopenmcu 发表于 2015-3-27 10:15

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

hscaihong 发表于 2015-8-11 21:45

楼主可以不可以把源码上传一下啊?
页: [1]
查看完整版本: NXP LPC1768宝马开发板 第三十五章 宝马1768——UCOSII+UCGUI控件...