EMWIN


文章目录

  • EMWIN
  • 前言
  • 一、数值显示 API 函数
  • 二、显示十进制数值
  • 三、 显示浮点数值
  • 四、二进制和十六进制数值显示


前言

很多情况下我们需要在LCD上显示数值,STemWin同样也给我们提供了丰富的数值显示API函数,这些API函数可以直接显示十进制数值,浮点数值,二进制数值,十六进制数值和emwin版本号。

一、数值显示 API 函数

显示十进制数值
GUI_DispDec() 在当前位置显示指定字符数的十进制数值。
GUI_DispDecAt() 在指定位置显示指定字符数的十进制数值。
GUI_DispDecMin() 在当前位置显示最小字符数的十进制数值。
GUI_DispDecShift() 在当前位置显示指定字符数、带小数点的十进制长数值。
GUI_DispDecSpace() 在当前位置显示指定字符数的十进制数值,用空格代替首位的
GUI_DispSDec() 在当前位置显示指定字符数的十进制数值并显示符号。
GUI_DispSDecShift() 在当前位置显示指定字符数、带小数点的十进制长数值并显示符号。
显示浮点数值
GUI_DispFloat() 显示指定字符数的浮点数值。
GUI_DispFloatFix() 显示指定小数点右边位数的浮点数值。
GUI_DispFloatMin() 显示最小字符数的浮点数值。
GUI_DispSFloatFix() 显示指定小数点右边位数的浮点数值并显示符号。
GUI_DispSFloatMin() 显示最小字符数的浮点数值并显示符号。
显示二进制数值
GUI_DispBin() 在当前位置显示二进制数值。
GUI_DispBinAt() 在指定位置显示二进制数值。
显示十六进制数值
GUI_DispHex() 在当前位置显示十六进制数值。
GUI_DispHexAt() 在指定位置显示十六进制数值。
emWin 版本
GUI_GetVersionString() 返回 emWin 的当前版本

二、显示十进制数值

void MainTask(void) 
{
GUI_Init();
GUI_SetBkColor(GUI_BLUE);  //背景颜色
GUI_Clear();
GUI_SetFont(&GUI_Font16_ASCII);
GUI_DispStringHCenterAt("ALIENEK NUM DISPLAY",160,0);
GUI_SetColor(GUI_RED); //字体颜色
GUI_SetFont(&GUI_Font13_ASCII);
//十进制数值 API 函数测试
GUI_DispStringAt("GUI_DispStringAt(): ",0,20);
GUI_DispDec(123,4);
GUI_DispString(" ");
GUI_DispDec(-123, 4);
GUI_DispStringAt("GUI_DispDecAt(): ", 0, 35);
GUI_DispDecAt(100,100,35,3);
GUI_DispDecAt(-564, 130, 35, 4);
GUI_DispStringAt("GUI_DispDecShift(): ", 0, 50);
GUI_DispDecShift(1236,5,2);
GUI_DispString(" ");
GUI_DispDecShift(-1236, 6, 2);
GUI_DispStringAt("GUI_DispDecSpace(): ", 0, 65);
GUI_DispDecSpace(3265,5);
GUI_DispStringAt("GUI_DispSDec(): ", 0, 80);
GUI_DispSDec(200,4);
GUI_DispStringAt("GUI_DispSDecShift(): ", 0, 95);
GUI_DispSDecShift(12345,7,3);
while (1);
}

EMVA 1288怎么采集所需要的图像数据 emwin如何显示采集数据_stm32


GUI_DispDec()和 GUI_DispDecAt()支持首位为 0 的格式,比如,如果我们要显示十进制数:123,当我们设置函数显示位数参数为 4 的时候,那么实际显示出来的就是:0123,首位用 0来填充了,并且当数值为负的时候就会在前面显示一个“-”号,还有其他的一些函数支持首位为 0 的格式。当我们要显示的数据包含正负号或者小数点的时候,函数参数里面的显示位数也要将正负号和小数点算进去。

三、 显示浮点数值

void MainTask(void)
{
float f = 123.45678;
GUI_Init();
GUI_SetBkColor(GUI_BLUE);
GUI_Clear();
GUI_SetFont(&GUI_Font16_ASCII);
GUI_DispStringHCenterAt("ALIENEK NUM DISPLAY",160,0);
GUI_SetColor(GUI_RED);
GUI_SetFont(&GUI_Font13_ASCII);
//浮点数值显示 API 函数演示
GUI_DispStringAt("GUI_DispFloat():\n", 0, 20);
GUI_DispFloat(f, 9);
GUI_GotoX(100);
GUI_DispFloat(-f, 9);
GUI_DispStringAt("GUI_DispFloatFix():\n", 0, 45);
GUI_DispFloatFix(f, 9, 2);
GUI_GotoX(100);
GUI_DispFloatFix(f, 9, 2);
GUI_DispStringAt("GUI_DispSFloatFix():\n", 0, 70);
GUI_DispSFloatFix(f, 9, 2);
GUI_GotoX(100);
GUI_DispSFloatFix(-f, 9, 2);
GUI_DispStringAt("GUI_DispFloatMin():\n", 0, 95);
GUI_DispFloatMin(f, 3);
GUI_GotoX(100);
GUI_DispFloatMin(-f, 3);
GUI_DispStringAt("GUI_DispSFloatMin():\n", 0, 120);
GUI_DispSFloatMin(f, 3);
GUI_GotoX(100);
GUI_DispSFloatMin(-f, 3);
while (1);
}

EMVA 1288怎么采集所需要的图像数据 emwin如何显示采集数据_stm32_02

四、二进制和十六进制数值显示

有时候我们需要显示 2 进制和十六进制的数值,在 emWin 中为我们提供了这样的 API 函数,极大的方便了我们的使用

void MainTask(void)
{
int dec = 20;
GUI_Init();
GUI_SetBkColor(GUI_BLUE);
GUI_Clear();
GUI_SetFont(&GUI_Font16_ASCII);
GUI_DispStringHCenterAt("ALIENEK BIN&HEX NUM DISPLAY",160,0);
GUI_SetColor(GUI_RED);
GUI_SetFont(&GUI_Font13_ASCII);
//二进制数值显示 API 函数演示
GUI_DispStringAt("GUI_DispBin(): ",0,20);
GUI_DispBin(dec,6);
GUI_DispStringAt("GUI_DispBinAt():", 0, 35);
GUI_DispBinAt(dec,87,35,6);
//十六进制数值显示 API 函数演示
GUI_DispStringAt("GUI_DispHex(): ", 0, 50);
GUI_DispHex(dec,2);
GUI_DispStringAt("GUI_DispHexAt(): ", 0, 65);
GUI_DispHexAt(dec, 87,65,2);
while (1);
}

EMVA 1288怎么采集所需要的图像数据 emwin如何显示采集数据_stm32_03