硬汉嵌入式论坛

 找回密码
 立即注册
查看: 61337|回复: 460
收起左侧

[emWin教程入门篇] 第三期:uCGUIBulder4.0和GUIBulder5.20的使用方法

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
发表于 2013-9-7 16:59:57 | 显示全部楼层 |阅读模式
特别说明:pdf版60期emWin教程已经发布:
                  http://www.armbbs.cn/forum.php?mod=viewthread&tid=2932
                  armfly-x2,x3,v2,v3,v5开发板裸机和带系统的emWin工程已经全部建立,链接如下:
                  http://www.armbbs.cn/forum.php?mod=viewthread&tid=1830
       本期主要的研究uCGUIBulder4.0和GUIBulder5.20的使用,很好的利用这两个软件,能是的emWin界面设计事半功倍
这个两个软件各有优缺点吧,要充分的发挥他们的长处就好,比如使用uCGUIBulder4.0的好处就是支持控件的对齐功能,
这个功能非常的重要,官方推出的GUIBulder5.20的好处就是控件非常的全,基本涵盖和所以控件。
1.png

本期分为五个小节:
3. 1  GUIBulder5.20的使用步骤
3. 2  GUIBulder5.20生产的.c文件在emWin5.22模拟器上面的运行效果
3. 3  uCGUIBulder4.0的使用步骤
3. 4  uCGUIBulder4.0生产的.c文件在emWin5.22模拟器上面的运行效果
3. 5  将生成的代码移植到armfly-V5开发板和armfly-X3开发板上面(有程序可以下载
3. 6  实验总结


3. 1  GUIBulder5.20的使用步骤
     使用这个软件以前要找到这个软件的位置,如果电脑上面安装了MDK的话,这个软件的位置就在
1.png

相信大家都能找到的,最好找MDK4.72里面的,这个是最新版本的,好处就是新的控件都加上了,废话
少罗嗦,跟大家讲一下这个软件该如何的使用,这里只是建立一个简单的对话框,上面加几个控件。
2.png



控件的添加还是很简单的,自己摸索一下就会了,添加完设计好控件以后这里看看如何生成代码


3.png



看到上面的那个save选项了没有,点击保存就可以了,但是保存到哪里了呢,看看下面的图片就知道了


4.png

没错,新生成的代码就是在这里,下面看看如何将生成的代码在emWin5.22的模拟器上面显示
3. 2  GUIBulder5.20生产的.c文件在emWin5.22模拟器上面的运行效果
       用VC6.0打开emWin5.22的模拟器,左侧栏是这样的
5.png

这里打开那个GUIDEMO__Start的文件,里面只有一个MainTask的初始化,这里可以把这个文件里面的函数
全部的删掉,全部复制刚才那个C文件里面的程序到这个文件里面来,只这样程序还是不能够运行的,复制过来
以后再加入这个代码
/*********************************************************************
*
*       MainTask
*/
void MainTask(void) {
  /* 窗口自动使用存储设备 */
  WM_SetCreateFlags(WM_CF_MEMDEV);
  /* 初始化 */
  GUI_Init();
  /* 创建对话框 就是刚才咱们用哪个GUIBulder5.20生成的程序里面的一个函数,用于创建对话框 */
  CreateFramewin();
  while(1)
  {
      /* 做一个延迟用出窗口的刷新和触摸响应 */
      GUI_Delay(100);
  }
}
对于这个模拟器来说,MainTask是程序的入口函数,所以用这个函数做初始化。
下面运行emWin5.20模拟器看看实际的显示效果

6.png

有人要说了,怎么显示的不全啊,而且没有那个时尚皮肤的效果,么事不要急,主要是设置的控件
有点大,是800*480的,主要是方便在开发上面显示出来。

3. 3  uCGUIBulder4.0的使用步骤
        这个软件里面有个软件的使用说明,讲的非常的详细了,如果不是很会用的,好好的看看那个
使用说明,这里先用这个软件设计一个如下的界面,非常简单
7.png
然后将生成的代码复制到emWin5.22模拟器的那个文件里面,方法和上面讲的相同,这里主要说一下
uCGUBulder4.0里面MainTask这个函数:
void MainTask(void)
{
    GUI_Init();
    WM_SetDesktopColor(GUI_WHITE);      /* Automacally update desktop window */
    WM_SetCreateFlags(WM_CF_MEMDEV);  /* Use memory devices on all windows to avoid flicker */
    //PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
    //FRAMEWIN_SetDefaultSkin(FRAMEWIN_SKIN_FLEX);
    //PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
    //BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX);
    //CHECKBOX_SetDefaultSkin(CHECKBOX_SKIN_FLEX);
    //DROPDOWN_SetDefaultSkin(DROPDOWN_SKIN_FLEX);
    //SCROLLBAR_SetDefaultSkin(SCROLLBAR_SKIN_FLEX);
    //SLIDER_SetDefaultSkin(SLIDER_SKIN_FLEX);
    //HEADER_SetDefaultSkin(HEADER_SKIN_FLEX);
    //RADIO_SetDefaultSkin(RADIO_SKIN_FLEX);
    /* 特别的主要这里,这个是阻塞式对话框,切记,切记 */
    GUI_ExecDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbCallback, 0, 0, 0);
}
运行emWin5.22模拟器的实验效果如下图所示
8.png

3. 5  将生成的代码移植到armfly-V5开发板和armfly-X3开发板上面
现在我的手头上面只有V5开发板,暂时先讲上面的那个程序移植到V5开发板上面,
和移植到emWin5.22模拟器上面是一样的,直接复制粘贴就可以,只是粘贴到那里呢
粘贴到这里来。
9.png

下面看一下在实验板子上面的显示效果,是不是和设计的一样,不出意外是一样的。
10.JPG

这里特别的说明一下,这个工程是用的STemWin5.20, 底层驱动用的也是我们最新版的驱动
armfly - v5开发板
第三期:STemWin5.20+uCOS-III+FatFS.zip (15.88 MB, 下载次数: 6578)

3. 6  实验总结
这个东西光我说是没用的,希望大家多动动手,最好充分的利用好这两个软件,这些软件能让你的设计
事半功倍。
回复

使用道具 举报

2

主题

19

回帖

25

积分

新手上路

积分
25
发表于 2013-9-8 16:39:13 | 显示全部楼层
[s:141]    没有板子
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
 楼主| 发表于 2013-9-8 16:46:23 | 显示全部楼层
bin629jing:
[s:141]    没有板子   

没事的,可以直接在PC机上面弄,顺便推荐下这个STM32F407VGT6的核心板,比较的便宜,148元
http://www.armbbs.cn/forum.php?mod=viewthread&tid=1507

1.png

2.png
回复

使用道具 举报

0

主题

13

回帖

13

积分

新手上路

积分
13
发表于 2013-9-10 08:46:07 | 显示全部楼层
正好有块屏,可以用来学习了。
回复

使用道具 举报

15

主题

40

回帖

85

积分

版主

Rank: 7Rank: 7Rank: 7

积分
85
发表于 2013-9-15 19:08:33 | 显示全部楼层
支持,看看
回复

使用道具 举报

0

主题

7

回帖

7

积分

新手上路

积分
7
发表于 2013-9-16 14:46:57 | 显示全部楼层
看看
回复

使用道具 举报

16

主题

203

回帖

251

积分

高级会员

积分
251
发表于 2013-9-16 16:32:22 | 显示全部楼层
看看
回复

使用道具 举报

36

主题

2040

回帖

2148

积分

至尊会员

积分
2148
发表于 2013-9-16 16:49:53 | 显示全部楼层
感谢楼主
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

6

主题

65

回帖

83

积分

初级会员

积分
83
发表于 2013-9-17 11:04:17 | 显示全部楼层
[s:148] 学习
回复

使用道具 举报

91

主题

289

回帖

562

积分

金牌会员

积分
562
发表于 2013-9-17 21:04:42 | 显示全部楼层
学习学习。。。。。。。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
 楼主| 发表于 2013-9-17 21:08:25 | 显示全部楼层
基本上大家回复一次,以后再次的查看是不需要回复的。
回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2013-9-17 21:13:27 | 显示全部楼层
非常感谢楼主的努力
回复

使用道具 举报

0

主题

4

回帖

0

积分

新手上路

积分
0
发表于 2013-9-18 16:09:29 | 显示全部楼层
[s:151]
回复

使用道具 举报

0

主题

10

回帖

0

积分

新手上路

积分
0
发表于 2013-9-18 16:20:51 | 显示全部楼层
学习.........................
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2013-9-19 12:27:21 | 显示全部楼层
[s:151] [s:151] [s:151] [s:151]
回复

使用道具 举报

0

主题

6

回帖

0

积分

新手上路

积分
0
发表于 2013-9-19 17:54:25 | 显示全部楼层
[s:152]
回复

使用道具 举报

1

主题

15

回帖

18

积分

新手上路

积分
18
发表于 2013-9-22 14:27:09 | 显示全部楼层
学习
回复

使用道具 举报

11

主题

34

回帖

67

积分

初级会员

积分
67
发表于 2013-9-22 14:46:47 | 显示全部楼层
[s:140]
回复

使用道具 举报

0

主题

5

回帖

0

积分

新手上路

积分
0
发表于 2013-9-22 21:17:17 | 显示全部楼层
学习学习。。。。。
回复

使用道具 举报

116

主题

800

回帖

1148

积分

至尊会员

积分
1148
QQ
发表于 2013-9-24 09:06:04 | 显示全部楼层
请教楼主,我用GUIBuilder.exe5.16版本长生的代码,在5.2模拟器中使用,调用 "CreateFramewin();"时发现没有此函数,
/*********************************************************************
*                                                                    *
*                SEGGER Microcontroller GmbH & Co. KG                *
*        Solutions for real time microcontroller applications        *
*                                                                    *
**********************************************************************
*                                                                    *
* C-file generated by:                                               *
*                                                                    *
*        GUI_Builder for emWin version 5.16                          *
*        Compiled Jun  4 2012, 15:48:59                              *
*        (c) 2011 Segger Microcontroller GmbH & Co. KG               *
*                                                                    *
**********************************************************************
*                                                                    *
*        Internet: www.segger.com  Support: support@segger.com       *
*                                                                    *
**********************************************************************
*/

// USER START (Optionally insert additional includes)
// USER END

#include "DIALOG.h"

/*********************************************************************
*
*       Defines
*
**********************************************************************
*/

#define ID_FRAMEWIN_0  (GUI_ID_USER + 0x05)
#define ID_BUTTON_0  (GUI_ID_USER + 0x06)
#define ID_SCROLLBAR_0  (GUI_ID_USER + 0x07)
#define ID_SLIDER_0  (GUI_ID_USER + 0x08)

// USER START (Optionally insert additional defines)
// USER END

/*********************************************************************
*
*       Static data
*
**********************************************************************
*/

// USER START (Optionally insert additional static data)
// USER END

/*********************************************************************
*
*       _aDialogCreate
*/
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
  { FRAMEWIN_CreateIndirect, "king", ID_FRAMEWIN_0, 269, 117, 320, 240, 0, 100, 0 },
  { BUTTON_CreateIndirect, "Button", ID_BUTTON_0, 84, 41, 144, 35, 0, 0, 0 },
  { SCROLLBAR_CreateIndirect, "Scrollbar", ID_SCROLLBAR_0, 90, 91, 144, 20, 0, 0, 0 },
  { SLIDER_CreateIndirect, "Slider", ID_SLIDER_0, 92, 142, 144, 20, 0, 0, 0 },
  // USER START (Optionally insert additional widgets)
  // USER END
};

/*********************************************************************
*
*       Static code
*
**********************************************************************
*/

// USER START (Optionally insert additional static code)
// USER END

/*********************************************************************
*
*       _cbDialog
*/
static void _cbDialog(WM_MESSAGE * pMsg) {
  WM_HWIN hItem;
  int Id, NCode;
  // USER START (Optionally insert additional variables)
  // USER END

  switch (pMsg->MsgId) {
  case WM_INIT_DIALOG:
    //
    // Initialization of 'king'
    //
    hItem = pMsg->hWin;
    FRAMEWIN_SetText(hItem, "king");
    // USER START (Optionally insert additional code for further widget initialization)
    // USER END
    break;
  case WM_NOTIFY_PARENT:
    Id    = WM_GetId(pMsg->hWinSrc);
    NCode = pMsg->Data.v;
    switch(Id) {
    case ID_BUTTON_0: // Notifications sent by 'Button'
      switch(NCode) {
      case WM_NOTIFICATION_CLICKED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      case WM_NOTIFICATION_RELEASED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      // USER START (Optionally insert additional code for further notification handling)
      // USER END
      }
      break;
    case ID_SCROLLBAR_0: // Notifications sent by 'Scrollbar'
      switch(NCode) {
      case WM_NOTIFICATION_CLICKED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      case WM_NOTIFICATION_RELEASED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      case WM_NOTIFICATION_VALUE_CHANGED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      // USER START (Optionally insert additional code for further notification handling)
      // USER END
      }
      break;
    case ID_SLIDER_0: // Notifications sent by 'Slider'
      switch(NCode) {
      case WM_NOTIFICATION_CLICKED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      case WM_NOTIFICATION_RELEASED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      case WM_NOTIFICATION_VALUE_CHANGED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      // USER START (Optionally insert additional code for further notification handling)
      // USER END
      }
      break;
    // USER START (Optionally insert additional code for further Ids)
    // USER END
    }
    break;
  // USER START (Optionally insert additional message handling)
  // USER END
  default:
    WM_DefaultProc(pMsg);
    break;
  }
}

/*********************************************************************
*
*       Public code
*
**********************************************************************
*/
/*********************************************************************
*
*       Createking
*/
WM_HWIN Createking(void);
WM_HWIN Createking(void) {
    WM_HWIN hWin;
   
    hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbDialog, WM_HBKWIN, 269, 117);
    return hWin;
}

// USER START (Optionally insert additional public code)
// USER END

/*************************** End of file ****************************/
/*********************************************************************
**       MainTask*/
void MainTask(void) {
    /* 窗口自动使用存储设备 */
    WM_SetCreateFlags(WM_CF_MEMDEV);
    /* 初始化 */
    GUI_Init();
    /* 创建对话框 就是刚才咱们用哪个GUIBulder5.20生成的程序里面的一个函数,用于创建对话框 */
    //CreateFramewin();
    Createking();
    while(1)
    {
        /* 做一个延迟用出窗口的刷新和触摸响应 */
        GUI_Delay(100);
    }
}

自己调用一个函数,结果显示是全黑,不知道是哪里出的问题
回复

使用道具 举报

116

主题

800

回帖

1148

积分

至尊会员

积分
1148
QQ
发表于 2013-9-24 09:17:35 | 显示全部楼层
找到问题了,把显示屏改为800*480,就有显示了,其实是显示在右下角的原因,显示的位置在GUIBuilder软件中可以设置,或者直接在显示函数传参的时候修改,这个软件给力[s:151] [s:151]
回复

使用道具 举报

0

主题

18

回帖

0

积分

新手上路

lcptw

积分
0
发表于 2013-9-24 11:13:29 | 显示全部楼层
支持,看看
lcptw
回复

使用道具 举报

116

主题

800

回帖

1148

积分

至尊会员

积分
1148
QQ
发表于 2013-9-24 16:22:54 | 显示全部楼层
请问在dialog中放图片能显示吗?我试了下

显示只有一个白框

显示只有一个白框
回复

使用道具 举报

116

主题

800

回帖

1148

积分

至尊会员

积分
1148
QQ
发表于 2013-9-24 16:26:08 | 显示全部楼层
在emwinGUIBuild软件操作中显示如下
b.JPG
回复

使用道具 举报

0

主题

8

回帖

0

积分

新手上路

积分
0
发表于 2013-9-24 18:30:22 | 显示全部楼层
继续关注,楼主辛苦
回复

使用道具 举报

2

主题

17

回帖

23

积分

新手上路

积分
23
发表于 2013-9-24 21:05:32 | 显示全部楼层
好东西
回复

使用道具 举报

5

主题

519

回帖

534

积分

金牌会员

积分
534
发表于 2013-9-24 22:16:42 | 显示全部楼层
[s:151]  [s:151]  [s:151]  [s:151]
回复

使用道具 举报

5

主题

519

回帖

534

积分

金牌会员

积分
534
发表于 2013-9-24 22:57:03 | 显示全部楼层
PC模拟软件从哪儿下载的?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
 楼主| 发表于 2013-9-24 23:39:31 | 显示全部楼层

回 hqgboy 的帖子

hqgboy:PC模拟软件从哪儿下载的? (2013-09-24 22:57) 
http://www.armbbs.cn/forum.php?mod=viewthread&tid=1544
回复

使用道具 举报

5

主题

519

回帖

534

积分

金牌会员

积分
534
发表于 2013-9-25 09:41:36 | 显示全部楼层
谢谢。。。。
回复

使用道具 举报

0

主题

3

回帖

0

积分

新手上路

积分
0
发表于 2013-9-25 21:05:10 | 显示全部楼层
给力
回复

使用道具 举报

1

主题

71

回帖

74

积分

初级会员

积分
74
发表于 2013-9-26 16:20:09 | 显示全部楼层
很好 不错
回复

使用道具 举报

2

主题

35

回帖

2

积分

新手上路

积分
2
发表于 2013-9-27 08:41:25 | 显示全部楼层
很不错的东西,用起来很方便。
回复

使用道具 举报

0

主题

10

回帖

0

积分

新手上路

积分
0
发表于 2013-9-27 17:27:51 | 显示全部楼层
非常好,谢谢
回复

使用道具 举报

0

主题

6

回帖

0

积分

新手上路

积分
0
发表于 2013-9-28 18:10:20 | 显示全部楼层
学习
回复

使用道具 举报

12

主题

46

回帖

82

积分

初级会员

积分
82
发表于 2013-9-28 23:06:52 | 显示全部楼层
非常不错
回复

使用道具 举报

0

主题

25

回帖

25

积分

新手上路

积分
25
发表于 2013-9-29 11:08:10 | 显示全部楼层
[s:141] [s:141]
[s:143] [s:143]
楼主辛苦了!
回复

使用道具 举报

0

主题

7

回帖

16

积分

新手上路

积分
16
发表于 2013-9-29 13:54:00 | 显示全部楼层
谢谢
回复

使用道具 举报

0

主题

8

回帖

0

积分

新手上路

积分
0
发表于 2013-9-29 19:29:32 | 显示全部楼层
真正需要的东西呀~
回复

使用道具 举报

0

主题

13

回帖

48

积分

新手上路

积分
48
发表于 2013-9-29 21:45:02 | 显示全部楼层
学习一下哦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-19 22:45 , Processed in 0.341025 second(s), 34 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表