|
楼主 |
发表于 2017-1-3 14:48:21
|
显示全部楼层
10.2 显示十进制数值
10.2.1 函数GUI_DispDec()
函数原型:
- void GUI_DispDec(I32 v, /* 数值 */
- U8 Len) /* 数值的位数 */
复制代码 函数描述:
函数GUI_DispDec用于显示十进制数值。
1、第1个参数是要显示的数值,范围是32位有符号数,最小值-2^31,最大值2^31 – 1。
2、第2个参数是要显示数值的位数,如果是负数的话,前面的负号也算在内。
使用这个函数要注意以下问题:
1. 使用此函数时,数值的首位不能是0,是0的话显示会出现错误。显示负数的话,负号也要算在数值位数里面。
2. 设置的数值位数大于实际显示的数值位数,前面会补0。
3. 设置的数值位数小于实际显示的数值位数,会出现错误。
使用举例: 在emWin模拟器上面运行如下代码: - #include "GUI.h"
-
- void MainTask(void)
- {
- /* 初始化 */
- GUI_Init();
-
- /* 设置数值显示字体 */
- GUI_SetFont(&GUI_Font24B_ASCII);
-
- GUI_GotoXY(0, 0);
- GUI_DispDec(-123, 4);
-
- GUI_GotoXY(0, 30);
- GUI_DispDec(012, 4);
-
- GUI_GotoXY(0, 60);
- GUI_DispDec(1234, 7);
-
- /* 设置的显示位数为2,小于实际的数值位数,导致错误,所以未显示 */
- GUI_GotoXY(0, 90);
- GUI_DispDec(1234, 2);
-
- while (1)
- {
- GUI_Delay(10);
- }
- }
复制代码
实际显示效果如下:
10.2.2 函数GUI_DispDecAt()
函数原型:
- void GUI_DispDecAt(I32 v, /* 数值 */
- I16P x, /* x坐标位置 */
- I16P y, /* y坐标位置 */
- U8 Len);/* 数值的位数 */
复制代码 函数描述:
函数GUI_DispDecAt用于显示十进制数值,相比函数GUI_DispDec的区别就是可以设置数值的显示位置。
1、第1个参数是要显示的数值,范围是32位有符号数,最小值-2^31,最大值2^31 – 1。
2、第2个参数是数值显示X坐标位置。
3、第3个参数是数值显示Y坐标位置。
4、第4个参数是要显示数值的位数,如果是负数的话,前面的负号也算在内。
使用这个函数要注意以下问题:
1. 使用此函数时,数值的首位不能是0,是0的话显示会出现错误。显示负数的话,负号也要算在数值位数里面。
2. 设置的数值位数大于实际显示的数值位数,前面会补0。
3. 设置的数值位数小于实际显示的数值位数,会出现错误。
使用举例: 在emWin模拟器上面运行如下代码: - #include "GUI.h"
-
- void MainTask(void)
- {
- /* 初始化 */
- GUI_Init();
-
- /* 设置数值显示字体 */
- GUI_SetFont(&GUI_Font24B_ASCII);
-
- GUI_DispDecAt(-123, 0, 0, 5);
- GUI_DispDecAt(045, 0, 30, 3);
- GUI_DispDecAt(345, 0, 60, 5);
-
- /* 设置的显示位数为2,小于实际的数值位数,导致错误,所以未显示 */
- GUI_DispDecAt(345, 0, 90, 2);
-
- while (1)
- {
- GUI_Delay(10);
- }
- }
复制代码
实际显示效果如下:
10.2.3 函数GUI_DispDecMin()
函数原型:
- void GUI_DispDecMin(I32 v); /* 要显示的数值 */
复制代码 函数描述:
函数GUI_DispDecMin用于显示十进制数值,使用时不需要指定显示的位数。
1、第1个参数是要显示的数值,范围是32位有符号数,最小值-2^31,最大值2^31 – 1。
使用这个函数要注意以下问题:
1. 使用这个函数不需要指定长度,会自动的使用最少的位数显示,如果显示数值的位数不一样,使用这个函数是无法对齐显示的。
2. 这个函数的参数首位也不可以是0,是0的话也会出现错位。
使用举例: 在emWin模拟器上面运行如下代码: - #include "GUI.h"
-
- void MainTask(void)
- {
- /* 初始化 */
- GUI_Init();
-
- /* 设置数值显示字体 */
- GUI_SetFont(&GUI_Font24B_ASCII);
-
- GUI_GotoXY(0, 0);
- GUI_DispDecMin(-33232);
-
- GUI_GotoXY(0, 30);
- GUI_DispDecMin(0032);
-
- GUI_GotoXY(0, 60);
- GUI_DispDecMin(00330);
-
- GUI_GotoXY(0, 90);
- GUI_DispDecMin(5980);
-
- while (1)
- {
- GUI_Delay(10);
- }
- }
复制代码
实际显示效果如下:
10.2.4 函数GUI_DispDecShift()
函数原型:
- void GUI_DispDecShift(I32 v, /* 数值 */
- U8 Len, /* 数值的位数 */
- U8 Shift); /* 小数点右侧显示的位数 */
复制代码 函数描述:
函数GUI_DispDecShift用于显示十进制数值,支持带小数点显示,且小数点位置可调整。
1、第1个参数是要显示的数值,范围是32位有符号数,最小值-2^31,最大值2^31 – 1。
2、第2个参数是要显示数值的位数,最大可以填10。
3、第3个参数设置小数点右侧显示的位数。
使用这个函数要注意以下问题:
1. 使用此函数时,数值的首位不能是0,是0的话显示会出现错误。负号和小数点都要算在数值位数内,最大可以显示9个字符出来。
2. 设置的数值位数大于实际显示的数值位数,前面会补0。
3. 设置的数值位数小于实际显示的数值位数,会出现错误。
使用举例: 在emWin模拟器上面运行如下代码: - #include "GUI.h"
-
- void MainTask(void)
- {
- /* 初始化 */
- GUI_Init();
-
- /* 设置数值显示字体 */
- GUI_SetFont(&GUI_Font24B_ASCII);
-
- GUI_GotoXY(0,0);
- /* 由于设置了显示位数是4,而实际的显示12.34,即5个字符,
- 使用错误,导致此选项没有显示出来。
- */
- GUI_DispDecShift(1234,4,2);
-
- GUI_GotoXY(0,30);
- GUI_DispDecShift(01234,6,2);
-
- GUI_GotoXY(0,60);
- GUI_DispDecShift(-1234,6,2);
-
- GUI_GotoXY(0,90);
- GUI_DispDecShift(1234,5,2);
-
- GUI_GotoXY(0,120);
- /* 由于设置了显示位数是9,而实际的显示1234567.89,即10个字符,
- 使用错误,导致此选项没有显示出来。
- */
- GUI_DispDecShift(123456789,9,2);
-
- GUI_GotoXY(0,150);
- GUI_DispDecShift(12345678,9,2);
-
-
- while (1)
- {
- GUI_Delay(10);
- }
- }
复制代码
实际显示效果如下:
10.2.5 函数GUI_DispSDec()
函数原型:
- void GUI_DispSDec(I32 v, /* 数值 */
- U8 Len); /* 数值的位数 */
复制代码 函数描述:
函数GUI_DispSDec用于显示十进制数值,类似GUI_DispDec,区别是不管是正数还是负数,都带符号。
1、第1个参数是要显示的数值,范围是32位有符号数,最小值-2^31,最大值2^31 – 1。
2、第2个参数是要显示数值的位数,不管是正数还是负数,符号都算在内。
使用这个函数要注意以下问题:
1. 使用此函数时,数值的首位不能是0,是0的话显示会出现错误。
2. 设置的数值位数大于实际显示的数值位数,前面会补0。
3. 设置的数值位数小于实际显示的数值位数,会出现错误。
使用举例:
在emWin模拟器上面运行如下代码:
- #include "GUI.h"
-
- void MainTask(void)
- {
- /* 初始化 */
- GUI_Init();
-
- /* 设置数值显示字体 */
- GUI_SetFont(&GUI_Font24B_ASCII);
-
- GUI_GotoXY(0, 0);
- GUI_DispSDec(-1234, 6);
-
- GUI_GotoXY(0, 30);
- GUI_DispSDec(1234, 5);
-
- /* 设置的数值位数3, 小于实际显示的数值位数,导致显示错误 */
- GUI_GotoXY(0, 60);
- GUI_DispSDec(1234, 3);
-
- GUI_GotoXY(0, 90);
- GUI_DispSDec(0234, 5);
-
- while (1)
- {
- GUI_Delay(10);
- }
- }
复制代码 实际显示效果如下:
10.2.6 函数GUI_DispSDecShift()
函数原型:
- void GUI_DispSDecShift(I32 v, /* 数值 */
- U8 Len, /* 数值的位数 */
- U8 Shift); /* 小数点右侧显示的位数 */
复制代码 函数描述:
函数GUI_DispSDecShift用于显示十进制数值,类似GUI_DispDecShift,区别是不管是正数还是负数,都带符号。
1、第1个参数是要显示的数值,范围是32位有符号数,最小值-2^31,最大值2^31 – 1。
2、第2个参数是要显示数值的位数,最大可以填10。
3、第3个参数设置小数点右侧显示的位数。
使用这个函数要注意以下问题:
1. 使用此函数时,数值的首位不能是0,是0的话显示会出现错误。正号,负号和小数点都要算在数值位数内,最大可以显示9个字符出来。
2. 设置的数值位数大于实际显示的数值位数,前面会补0。
3. 设置的数值位数小于实际显示的数值位数,会出现错误。
使用举例:
在emWin模拟器上面运行如下代码:
- #include "GUI.h"
-
- void MainTask(void)
- {
- /* 初始化 */
- GUI_Init();
-
- /* 设置数值显示字体 */
- GUI_SetFont(&GUI_Font24B_ASCII);
-
- GUI_GotoXY(0, 0);
- GUI_DispSDecShift(02345, 7, 3);
-
- GUI_GotoXY(0, 30);
- GUI_DispSDecShift(345, 6, 2);
-
- /* 设置的数值位数3, 小于实际显示的数值位数,导致显示错误 */
- GUI_GotoXY(0, 60);
- GUI_DispSDecShift(12345, 3, 3);
-
- GUI_GotoXY(0, 90);
- GUI_DispSDecShift(-1234, 6, 3);
-
- while (1)
- {
- GUI_Delay(10);
- }
- }
复制代码 实际显示效果如下: |
|