【STemWin教程入门篇】第7章 STemWin数值显示

标签:
ucos-iiiucguiemwin2-d图形库绘图 |
分类: emWin |
第7章 STemWin数值显示
本期主要讲数值的显示,整体来说比较的简单,但很适合初学者看,有些数值显示函数在使用上要特别注意,刚学的时候最容易在这些函数上犯错误。
当然,我们可以使用字符串和标准C库的函数来显示数值。然而,有时候这会是件困难的事。通常,较为容易 (也更为有效)的是调用一个例程显示所需结构的数值。emWin支持各种十进制、十六进制和二进制输出。本章将对这些例程进行逐一描述。所有函数不需要使用浮点库,并对速度和大小进行了优化,当然“Sprintf”可以用于任何系统。使用本章介绍的例程,有时可以简化操作,节省ROM空间和执行时间。
7.
1
7.
2
7.
3
7.
4
7.1 显示十进制数值
7.1.1
函数GUI_DispDec()
这个要注意的是首位不能是0,是0的话显示会出现错误。显示负数的话,负号也要算在No. of digits(看英文手册的说明,它的意思是整个数字的个数,包括正负号,如果有小数点的话,还要包括小数点)里面,切记,要不也会出错。
设置的No. of digits比实际要显示的字符串大的话,前面会补0。
设置的No. of digits比实际要显示的字符串小的话,会出现错位。
在STemWin5.24模拟器上面跑如下代码:
#include "GUI.h"
void MainTask(void)
{
}
实际显示效果如下:
7.1.2
函数GUI_DispDecAt()
这个的显示类似上面,只是多了个可以设置显示的坐标。
在STemWin5.24模拟器上面跑如下代码:
#include "GUI.h"
void MainTask(void)
{
;
}
实际显示效果如下:
7.1.3
函数GUI_DispDecMin()
使用这个函数不需要指定长度,会自动的使用最少的字符显示,如果需要对其方式且显示的个数不一样,这个函数不合适。这个函数的首位也不可以是0,是0的话也会出现错位。
在STemWin5.24模拟器上面跑如下代码:
#include "GUI.h"
void MainTask(void)
{
;
}
实际显示效果如下:
7.1.4
函数GUI_DispDecShift()
首位也不可以是0。负号和小数点都要算在No. of digits,最大支持9位。No. of digits设置的大了的话前面要补0。
在STemWin5.24模拟器上面跑如下代码:
#include "GUI.h"
void MainTask(void)
{
;
}
实际显示效果如下:
7.1.5
函数GUI_DispSDec()
类似于GUI_DispDec(),不支持首位是0,不管是正的,还是负的,都要显示负号,而且这个正负号也要算在No. of digits里面。
在STemWin5.24模拟器上面跑如下代码:
#include "GUI.h"
void MainTask(void)
{
;
}
实际显示效果如下:
7.1.6
函数GUI_DispSDecShift()
这个函数是GUI_DispSDec()和GUI_DispDecShift()的合并版,只要注意No. of digits里面要包括正号负号还有小数点。
在STemWin5.24模拟器上面跑如下代码:
#include "GUI.h"
void MainTask(void)
{
;
}
实际显示效果如下:
总结:用时一定要保证自己设置的No. of digits要大于等于自己实际要显示的。多了的话前面会补零,少了的话就会出错的,显示一堆9。
7.2
GUI_DispBin()
GUI_DispBinAt()
GUI_DispHex()
GUI_DispHexAt()
这四个差不多,第一个最大支持32位的显示,后面三个中最大支持16位,No. of digits设置的多了的话前面会补零,少了的话有几个显示几个。
在STemWin5.24模拟器上面跑如下代码:
#include "GUI.h"
void MainTask(void)
{
;
}
实际显示效果如下:
7.3
关于浮点的ucGUI里面有个很好的说明的例子。
在STemWin5.24模拟器上面跑如下代码:
#include "GUI.h"
void MainTask(void)
{
}
实际显示效果如下:
7.4
数值的显示也属于最基本的功能,初学者要多练练这些相关的函数,实践出真知。