你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【安富莱STemWin教程】第4章 uCGUIBulder4.0和GUIBulder5.22的...

[复制链接]
baiyongbin2009 发布时间:2015-1-9 15:33
本帖最后由 baiyongbin2009 于 2015-1-9 15:36 编辑
6 K; y, V" [- j6 p. j$ _7 ~0 B; K' D; \9 |& m* z" `6 O+ e8 j

特别说明:完整STemWin的1-60期教程和配套实例下载地址:链接

第4章      uCGUIBulder4.0和GUIBulder5.22的使用方法

    本期主要是带领大家学习uCGUIBulder4.0和GUIBulder5.22的使用,很好的利用这两个软件,能使得STemWin界面设计事半功倍。这个两个软件各有优缺点,要充分的发挥他们的长处就好,比如使用uCGUIBulder4.0的好处就是支持控件的对齐功能,这个功能非常的重要,官方推出的GUIBulder5.22的好处就是控件非常的全,基本涵盖和所有控件,但是不支持控件对齐功能。
4.1.jpg
) ?3 j' _7 B0 N: H  M" \
      4.1  GUIBulder5.22的使用步骤
      4.2  emWin5.24模拟器上运行GUIBulder5.22生成代码
      4.3  uCGUIBulder4.0的使用步骤
2 s+ i1 x4 {4 @3 }$ E& m      4.4  移植uCGUIBulder4.0生成的代码到开发板2 D+ v5 T% F" }9 [
      4.5  总结
4.1   GUIBulder5.22的使用步骤
    关于GUIBulder5.22的使用分为两部分跟大家讲解。一个是MDK安装目录中的,一个是STemWin软件包。
l  MDK4.73及其以下版本中GUIBulder5.22所在位置
4.2.jpg
2 A  Z- C: g$ @! O1 F
l MDK5.xx版本中GUIBulder5.22所在位置,MDK5.xx版本相对于以前的版本变化比较大,路径也有很大变化。

% S2 k6 r& Y+ u3 O3 [- n9 u6 E
4.3.jpg
l STemWin软件包中GUIBulder5.22所在位置
4.4.jpg

$ Q$ a2 d' X% I$ P6 \4.1.1      第一步:建立一个对话框8 I/ t2 G- M% l7 S
l  找到GUIBulder后,打开这个软件,并按照如下方式建立一个对话框。
4.5.jpg
3 d' v2 e8 E: z% u5 C( Y; V
l  修改对话框大小为800*480
4.6.jpg

) m  l0 e0 z0 H! S; }0 n
l  设置对话框标题的字体,对齐方式,和显示的文本
在建立的对话框上面右击鼠标,选择Set font出现如下界面,并选择字体GUI_FONT_32B_ASCII

$ F3 M( S/ x& u# K2 v( p- X% s
       4.7.jpg
    设置号字体以后再设置对齐方式,还是右击鼠标,选择Set text alignment,并选择居中

& Z; [  Y* w7 C9 d2 L
4.8.png
    设置好以后,上面的字体Framewin字体会居中显示,然后还是鼠标右击,选择Set title text,并更改Framewin为armfly,修改的地方在左下角:
! o4 W5 Q2 d( `( u* n# d  V0 E5 ~& Z6 L; P
4.9.jpg
设置好以后,基本一个对话框就算建立完毕。
4.1.2      第二步:在对话框上面建立按钮
    按钮的建立方面和上面的对话框是一样的。按钮上面的字体大小和显示内容,大家可以任意设置。按钮上的文本不支持对齐方式设置,默认是居中显示,我这里是显示字符armfly,字体GUI_FONT_24B_ASCII,建立后的效果如下:
4.10.jpg

$ Z; X) U; U9 f$ u4 q9 d% x+ G6 x
* z" \# k7 D* V* A" g
    对于建立的按钮控件,用户可以任意拖动,并通过鼠标调整其大小,调整方法如下:先左击选中相应控件,会出现绿色的边框,在边框的地方拖动鼠标即可修改大小
4.11.jpg

8 C# ~  a, F7 v0 v/ A3 @; }4.1.3      第三步:在对话框上面建立滚动条
    建立后的效果如下:
4.12.jpg

/ y0 ~+ @8 l* J7 r" x/ w

! X- ~* i( f3 z! Y, y  Z( M/ ~: r4 r- j6 ^: s/ b/ b( l
4.1.4      第四步:在对话框上面建立滑动条
    建立的滑动条显示效果如下:
4.13.jpg

3 a) B: K) F/ H1 P' u0 m, c7 A4.1.5      第五步:建立好后点击File-save
   保存方法如下:
4.14.jpg

( J3 |% m) o# t  {6 v

. f3 o7 D# a, N5 S& W) }6 R, c
    保存后生成的文件在GUIBluder5.22软件所在的文件夹里面:
4.15.jpg

+ J! v; H, G% f# ^; @" d
4.2  emWin5.24模拟器上运行GUIBulder5.22生成代码
    现在给大家演示一下emWin5.24上面运行上面GUIBulder5.22生成的代码。emWin5.24的官网下载地址:http://www.segger.com/downloads.html?pid=26
    用VC6.0打开emWin5.24模拟器,左侧栏是这样的
4.16.png

- P& x4 W7 E, ]) h  j

+ K1 B6 r6 \; [' E* J* ]) m
    这里打开那个GUIDEMO__Start的文件,里面只有一个MainTask的初始化,这里可以把这个文件里面的函数全部的删掉,全部复制刚才那个C文件里面的程序到这个文件里面来,只这样程序还是不能够运行的,复制过来以后再加入这个代码,加在文件的末尾即可。
  1. /*********************************************************************
    7 L3 J/ Y* i/ h$ `
  2. *5 j$ q* ~, F/ y; p4 @) o
  3. *       MainTask
    5 N( F, u- D# O6 G
  4. */  j. H+ Q9 d4 l. X8 s
  5. void MainTask(void)
    " X- x; b" ^9 U$ c- M' A
  6. {* c/ a( J* O' j0 c
  7. /* 窗口自动使用存储设备 */$ Y, _. Y% d% w8 r" H1 G( R) t
  8. WM_SetCreateFlags(WM_CF_MEMDEV);' t; g% s. J( B
  9.     /* 初始化 */3 n3 a5 n# k! |' m: K6 N5 d3 v" x2 ~
  10. GUI_Init();
    / N, h+ d4 j: D8 P
  11. /* 创建对话框 就是刚才咱们用哪个GUIBulder5.20生成的程序里面的一个函数,用于创建对话框 */
      ~5 c' Q. F& ~9 I5 }$ T! l
  12. CreateFramewin();
    * S: e% u  S( e( v7 q
  13. while(1)( ^; L' B- Q% p: K9 p1 F) c/ ?) m
  14. {! s4 M. a$ P4 A, i9 D5 T$ X+ ?
  15. /* 做一个延迟用出窗口的刷新和触摸响应 */# R6 U0 Y+ M  O, l( f0 n
  16. GUI_Delay(100);
    6 V! f  M- h0 ?
  17. }7 W- [( S: {( ~8 v
  18. }
复制代码
    运行VC6.0实际显示的效果如下:
4.17.jpg
9 v1 L& S, N: n* J8 _9 ^2 E
    显示这种界面很正常,是因为配置的输出界面时320*240的,下期教程跟大家讲emWin5.24的使用时,再详细的讲解如何设置。
4.3  uCGUIBulder4.0的使用步骤
     uCGUIBulder4.0是国内的一位网友做的,做的不错,特别是控件的对齐功能。这个小软件有一个作者写的使用说明,说的非常详细,我这里就不再赘述了,下面用这个软件设计一个如下的界面:
4.18.jpg

. f  {" j8 _+ P: u# O8 y
    然后将生成的代码复制到emWin5.24模拟器的那个文件里面,方法和上面讲的相同,这里主要将uCGUBulder4.0里面MainTask函数内容贴出来:
  1. void MainTask(void) 7 R' M( }4 v$ o6 p) ~0 ]) a% b3 e
  2. {
    , C) o# `0 K/ H. v: m3 P7 K
  3. GUI_Init();
    ! q* y) r+ a+ p/ o: @$ l
  4. WM_SetDesktopColor(GUI_WHITE);      /* Automacally update desktop window */
    ( W1 `' _; l3 x0 S
  5. WM_SetCreateFlags(WM_CF_MEMDEV);  /* Use memory devices on all windows to avoid flicker */. {* Q) S8 B& a9 }5 R& l
  6. //PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
    9 o9 d- E2 v3 V5 L
  7. //FRAMEWIN_SetDefaultSkin(FRAMEWIN_SKIN_FLEX);1 n4 T" m$ P1 u: H" r6 \1 M
  8. //PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);5 |6 U9 y  r8 g9 f
  9. //BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX);2 w3 Z; W3 o0 U
  10. //CHECKBOX_SetDefaultSkin(CHECKBOX_SKIN_FLEX);+ I3 A) q! q+ G" \9 v
  11. //DROPDOWN_SetDefaultSkin(DROPDOWN_SKIN_FLEX);. ]/ W/ C1 V6 s! S; }
  12. //SCROLLBAR_SetDefaultSkin(SCROLLBAR_SKIN_FLEX);
    3 X) `7 K* j  a# v- Z
  13. //SLIDER_SetDefaultSkin(SLIDER_SKIN_FLEX);
    . T% v( E/ b0 x2 K0 ~& e+ L* t
  14. //HEADER_SetDefaultSkin(HEADER_SKIN_FLEX);  G' X+ U4 L7 d9 p
  15. //RADIO_SetDefaultSkin(RADIO_SKIN_FLEX);
    6 p7 e5 I; B' v% x
  16. /* 特别的主要这里,这个是阻塞式对话框,切记,切记 */$ }8 A( L5 \' w& X! H% p
  17. GUI_ExecDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbCallback, 0, 0, 0);
    : ^: Q* P; V; [+ D
  18. }
复制代码
    运行emWin5.24模拟器的实验效果如下图所示(这里将上面注释的皮肤设置函数全部打开)

% \0 S+ I+ o7 _/ v# A
4.19.jpg
4.4  移植uCGUIBulder4.0生成的代码到开发板
    移植到开发板上面和移植到移植到emWin5.22模拟器上面是一样的,直接复制粘贴就可以,只是粘贴到MainTask文件里面:

# H# C0 N- b5 G, @5 _- ^2 G& G
4.20.jpg
    运行并下载到板子上面实际的显示效果如下(通过按下按键K1将界面保存为BMP图片到SD卡)
: |9 `' J  _% }; i& U( W' w& ^
4.21.jpg
    特别注意,如果使用的是800*480分辨率的屏可以完成显示出来,如果是小于这个分辨率的屏只能显示出一部分,大家可以按照上面的设计方法做一个适合自己屏大小的显示。
4.5  总结
    通过本章教程,大家对于两个图形生成软件有一个了解即可,后面会跟大家再深入的介绍相关知识。

" b/ v/ V5 W6 M( F$ Q
赞 收藏 1 评论2 发布时间:2015-1-9 15:33

举报

2个回答
小七777 回答时间:2015-9-10 14:33:03
学习记录一下
pwdzsj 回答时间:2015-10-18 17:10:28
值得收藏哦

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版