硬汉嵌入式论坛

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

[emWin教程入门篇] 第十一期:emWin数值显示(初学者必看)

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107485
QQ
发表于 2013-9-30 19:51:33 | 显示全部楼层 |阅读模式
祝大家国庆快乐,玩的开心。

特别说明: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
      本期主要讲数值的显示,整体来说比较的简单,但很适合初学的兄弟看,里面有一些函数的使用
上面需要注意的问题。
     我们可以使用字符串和标准C库的函数来显示数值。然而,有时候这会是件困难的事。通常,较
为容易 (也更为有效)的是调用一个例程显示所需结构的数值。emWin支持各种十进制、十六进制
和二进制输出。本章将对这些例程进行逐一描述。所有函数不需要使用浮点库,并对速度和大小进行
了优化。当然“Sprintf”可以用于任何系统。使用本章介绍的例程,有时可以简化操作,节省ROM空
间和执行时间。


本期分为五个小节:
11. 1  显示十进制数值
11. 2  显示十六进制和二进制

11. 3  显示浮点数值
11. 4  实验总结




11. 1  显示十进制数值
GUI_DispDec()
这个要注意的是首位不能是0,是0的话显示会出现错误。
显示负数的话,负号也要算在No. of digits里面,切记,要不也会出错。
设置的No. of digits比实际要显示的字符串大的话,前面会补0。
设置的No. of digits比实际要显示的字符串小的话,会出现错位。[blockquote]
GUI_GotoXY(0,0);
GUI_DispDec(-123,4);                        
GUI_GotoXY(100,0);
GUI_DispDec(012,4);                                   
GUI_GotoXY(200,0);
GUI_DispDec(1234,7);                          
GUI_GotoXY(300,0);
GUI_DispDec(1234,2);
1.png
[/blockquote]
GUI_DispDecAt()
这个的显示类似上面,只是多了个可以设置显示的坐标。[blockquote]
GUI_DispDecAt(-123,0,20,5);                  
GUI_DispDecAt(045 ,100,20,3);
GUI_DispDecAt(345 ,200,20,5);                    
GUI_DispDecAt(345 ,300,20,2);
2.png
[/blockquote]
GUI_DispDecMin()
不需要指定长度,自动的用最少的字符显示,如果需要对其方式且显示的个数不一样的话,这个方式不太合适。
这个的首位也不可以是0,是0的话也会出现错位。[blockquote]
GUI_GotoXY(0,40);                                                  
GUI_DispDecMin(-33232);                                 
GUI_GotoX(100);                                                                             
GUI_DispDecMin(0032);                  
GUI_GotoX(200);                                                                             
GUI_DispDecMin(00330);               
GUI_GotoX(300);                                                                             
GUI_DispDecMin(5980);
3.png
[/blockquote]
GUI_DispDecShift()
首位也不可以是0。
负号和小数点都要算在No. of digits,最大支持9位。
No. of digits设置的大了的话前面要补0。[blockquote]
GUI_GotoXY(0,60);
GUI_DispDecShift(1234,4,2);               
GUI_GotoX(100);
GUI_DispDecShift(01234,6,2);      
GUI_GotoX(200);
GUI_DispDecShift(-1234,6,2);        
GUI_GotoX(300);
GUI_DispDecShift(1234,5,2);
GUI_GotoXY(0,80);
GUI_DispDecShift(123456789,9,2);      
GUI_GotoX(200);
GUI_DispDecShift(12345678,9,2);
4.png
[/blockquote]
GUI_DispSDec()
类似于GUI_DispDec(),不支持首位是0,不管是正的,还是负的,都要显示负号,而且这个正负号也要算在No. of digits里面。[blockquote]
GUI_GotoXY(0,100);
GUI_DispSDec(-1234,5);                  
GUI_GotoX(100);
GUI_DispSDec(1234,5);                        
GUI_GotoX(200);
GUI_DispSDec(1234,3);
GUI_GotoX(300);                              
GUI_DispSDec(0234,5);
GUI_GotoXY(0,120);
5.png
[/blockquote]
GUI_DispSDecShift()
这个是GUI_DispSDec()和GUI_DispDecShift()的合并版,只要注意No. of digits里面要包括正号负号还有小数点。[blockquote]
GUI_DispSDecShift(02345,7,3);      
GUI_GotoX(100);
GUI_DispSDecShift(345,6,2);
GUI_GotoX(200);
GUI_DispSDecShift(12345,3,3);
GUI_GotoX(300);
GUI_DispSDecShift(-1234,6,3);
6.png
[/blockquote]
总结:用时一定要保证自己设置的No. of digits要大于等于自己实际要显示的。多了的话前面会补零,少了的话就
           会出错的,显示一堆9。
11. 2  显示十六进制和二进制
GUI_DispBin()
GUI_DispBinAt()
GUI_DispHex()
GUI_DispHexAt()
这四个差不多,第一个最大支持32位的显示,后面三个中最大支持16位,No. of digits设置的多了的话前
面会补零,少了的话有几个显示几个。[blockquote]
GUI_GotoXY(0,140);
GUI_DispBin(0x08,8);   
GUI_GotoX(100);
GUI_DispBin(0x88,9);      
GUI_GotoX(200);
GUI_DispBin(0x08,6);
GUI_GotoX(300);
GUI_DispBin(0x08,2);

GUI_DispBinAt(0x55,0,160,8);
GUI_DispBinAt(0x55,100,160,7);  
GUI_DispBinAt(0x05,200,160,4);  
GUI_DispBinAt(0x05,300,160,16);[/blockquote]
          8.png
11. 3  显示浮点数值
关于浮点的ucGUI里面有个很好的说明的例子,我这里直接的贴上[blockquote]
float f = 123.45678;
GUI_Clear();
GUI_SetFont(&GUI_Font8x8);
GUI_DispStringAt("GUI_DispFloat:\n",0,0);

GUI_DispFloat (f,9);
GUI_GotoX(100);
GUI_DispFloat (-f,9);
GUI_DispStringAt("GUI_DispFloatFix:\n",0,20);
GUI_DispFloatFix (f,9,2);
GUI_GotoX(100);
GUI_DispFloatFix (-f,9,2);
GUI_DispStringAt("GUI_DispSFloatFix:\n",0,40);
GUI_DispSFloatFix (f,9,2);
GUI_GotoX(100);
GUI_DispSFloatFix (-f,9,2);
GUI_DispStringAt("GUI_DispFloatMin:\n",0,60);
GUI_DispFloatMin (f,3);
GUI_GotoX(100);
GUI_DispFloatMin (-f,3);
GUI_DispStringAt("GUI_DispSFloatMin:\n",0,80);
GUI_DispSFloatMin (f,3);
GUI_GotoX(100);
GUI_DispSFloatMin (-f,3);
GUI_SetFont(&GUI_Font6x8);
GUI_DispStringAt(&quotress any key",0, 240-8);
9.png
[/blockquote]
11. 4  实验总结
       实验上面的例子都是2年以前写的了,今天找了出来,数值显示方面,大家多多的联系就好。
回复

使用道具 举报

36

主题

2041

回帖

2149

积分

至尊会员

积分
2149
发表于 2013-9-30 19:54:31 | 显示全部楼层
支持楼主[s:151] [s:151]
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

20

主题

55

回帖

20

积分

初级会员

积分
20
发表于 2013-9-30 19:54:54 | 显示全部楼层
强烈支持,帮我们初学者入门[s:151] [s:151]
天天向上
回复

使用道具 举报

0

主题

13

回帖

48

积分

新手上路

积分
48
发表于 2013-9-30 19:57:33 | 显示全部楼层
学习哦
回复

使用道具 举报

12

主题

46

回帖

82

积分

初级会员

积分
82
发表于 2013-9-30 19:58:16 | 显示全部楼层
楼主很强悍
回复

使用道具 举报

11

主题

34

回帖

67

积分

初级会员

积分
67
发表于 2013-9-30 20:02:48 | 显示全部楼层
[s:147]
回复

使用道具 举报

1

主题

15

回帖

18

积分

新手上路

积分
18
发表于 2013-10-1 10:19:36 | 显示全部楼层
[s:152]
回复

使用道具 举报

91

主题

289

回帖

562

积分

金牌会员

积分
562
发表于 2013-10-1 15:42:55 | 显示全部楼层
学习学习
回复

使用道具 举报

0

主题

6

回帖

6

积分

新手上路

积分
6
发表于 2013-10-1 23:15:11 | 显示全部楼层
版主辛苦了,十一都在工作哦!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107485
QQ
 楼主| 发表于 2013-10-1 23:53:48 | 显示全部楼层

回 cddxdm 的帖子

cddxdm:版主辛苦了,十一都在工作哦! (2013-10-01 23:15) 
没有,这个10.1前一天发的,明天得好好地休息下。
回复

使用道具 举报

0

主题

16

回帖

0

积分

新手上路

积分
0
发表于 2013-10-2 11:53:49 | 显示全部楼层
[s:141]
回复

使用道具 举报

0

主题

8

回帖

0

积分

新手上路

积分
0
发表于 2013-10-3 22:39:58 | 显示全部楼层
来看看~~~
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107485
QQ
 楼主| 发表于 2013-10-4 11:40:36 | 显示全部楼层
顶一下
回复

使用道具 举报

3

主题

48

回帖

3

积分

初级会员

积分
3
发表于 2013-10-5 10:34:25 | 显示全部楼层
支持[s:151] [s:151]
回复

使用道具 举报

1

主题

33

回帖

1

积分

新手上路

积分
1
QQ
发表于 2013-10-5 14:07:39 | 显示全部楼层
强烈支持,帮我们初学者入门
回复

使用道具 举报

5

主题

533

回帖

548

积分

金牌会员

积分
548
发表于 2013-10-5 20:48:47 | 显示全部楼层
[s:151]  [s:151]  [s:151]
回复

使用道具 举报

9

主题

59

回帖

86

积分

初级会员

积分
86
发表于 2013-10-7 08:41:44 | 显示全部楼层
很强大。。。
回复

使用道具 举报

116

主题

800

回帖

1148

积分

至尊会员

积分
1148
QQ
发表于 2013-10-9 09:36:50 | 显示全部楼层
好东西啊
回复

使用道具 举报

0

主题

18

回帖

0

积分

新手上路

lcptw

积分
0
发表于 2013-10-9 13:19:18 | 显示全部楼层
[入门篇]. [s:141]  [s:141]  [s:141]
lcptw
回复

使用道具 举报

0

主题

17

回帖

0

积分

新手上路

积分
0
QQ
发表于 2013-10-9 17:35:33 | 显示全部楼层
走走,瞧瞧,看看。和ucGUI3.8功能一样,好像
回复

使用道具 举报

0

主题

101

回帖

101

积分

初级会员

积分
101
发表于 2013-10-10 09:18:30 | 显示全部楼层
学习,收录了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107485
QQ
 楼主| 发表于 2013-10-10 09:29:44 | 显示全部楼层

回 everbright66 的帖子

everbright66:走走,瞧瞧,看看。和ucGUI3.8功能一样,好像 (2013-10-09 17:35) 
一样的,向下完全的兼容ucgui3.98
回复

使用道具 举报

0

主题

6

回帖

6

积分

新手上路

积分
6
发表于 2013-10-10 09:55:24 | 显示全部楼层
不错
回复

使用道具 举报

41

主题

97

回帖

220

积分

高级会员

积分
220
发表于 2013-10-10 15:44:39 | 显示全部楼层
[s:151]
回复

使用道具 举报

16

主题

203

回帖

251

积分

高级会员

积分
251
发表于 2013-10-10 23:02:11 | 显示全部楼层
[s:151] [s:151] [s:151] [s:151] [s:147] [s:147]
回复

使用道具 举报

0

主题

13

回帖

13

积分

新手上路

积分
13
发表于 2013-10-11 11:19:18 | 显示全部楼层
入门者必看。
回复

使用道具 举报

0

主题

1

回帖

0

积分

新手上路

积分
0
发表于 2013-10-11 13:36:52 | 显示全部楼层
[s:152]
回复

使用道具 举报

12

主题

22

回帖

58

积分

初级会员

积分
58
发表于 2013-10-11 19:45:46 | 显示全部楼层
学习一下。
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
发表于 2013-10-12 13:30:34 | 显示全部楼层
[s:151][s:151]
回复

使用道具 举报

33

主题

203

回帖

302

积分

高级会员

积分
302
发表于 2013-10-14 11:03:24 | 显示全部楼层
[s:140] [s:140] [s:140] [s:140]
回复

使用道具 举报

0

主题

17

回帖

0

积分

新手上路

积分
0
发表于 2013-10-14 22:24:42 | 显示全部楼层
谢谢
回复

使用道具 举报

0

主题

15

回帖

15

积分

新手上路

积分
15
发表于 2013-10-17 16:28:04 | 显示全部楼层
支持楼主
回复

使用道具 举报

0

主题

11

回帖

0

积分

新手上路

积分
0
发表于 2013-10-18 11:12:50 | 显示全部楼层
看看
回复

使用道具 举报

0

主题

6

回帖

0

积分

新手上路

积分
0
发表于 2013-10-18 22:48:22 | 显示全部楼层
[s:151]
回复

使用道具 举报

5

主题

34

回帖

5

积分

新手上路

积分
5
发表于 2013-10-21 16:57:41 | 显示全部楼层
什么时候,能像eric一样·····[s:147]
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107485
QQ
 楼主| 发表于 2013-10-21 17:46:51 | 显示全部楼层

回 大爹路西法 的帖子

大爹路西法:什么时候,能像eric一样·····[s:147]  (2013-10-21 16:57) 
对于你来说只是时间问题
回复

使用道具 举报

2

主题

34

回帖

40

积分

新手上路

积分
40
发表于 2013-10-21 20:52:25 | 显示全部楼层
不错,支持一下!!!!
回复

使用道具 举报

0

主题

23

回帖

23

积分

新手上路

积分
23
发表于 2013-10-22 09:19:59 | 显示全部楼层
[s:140]  [s:140]
回复

使用道具 举报

0

主题

17

回帖

0

积分

新手上路

积分
0
发表于 2013-10-22 22:01:14 | 显示全部楼层
学习了[s:151]
回复

使用道具 举报

11

主题

59

回帖

11

积分

初级会员

积分
11
发表于 2013-10-26 10:59:43 | 显示全部楼层
[s:151]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-3 16:43 , Processed in 0.403456 second(s), 34 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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