16.3 标准字体 STemWin随附一系列字体,可满足大部分需求。标准字体包包含不同大小和样式的等宽字体和比例字体。等宽字体指字符宽度固定的字体,其中所有字符的宽度像素相同。比例字体指其中每个字符有自己单独的宽度像素的字体(这个在前面的16.1小节已经有详细的讲解)。 关于字体标识符命名约定,字体文件命名约定和字体的计量、ROM大小和字符集已经在emWin手册里面有详细的说明,这里就不再啰嗦了。重点是跟大家演示一下效果。 16.3.1 比例字体 STemWin所支持的比例字体以及显示效果如下:
下面在emWin模拟器上面跟大家演示一下显示效果,模拟器上运行的程序如下:
- #include "GUI.h"
-
- void MainTask(void)
- {
- GUI_Init();
- GUI_SetFont(&GUI_Font8_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 0);
- GUI_SetFont(&GUI_Font10S_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 30);
- GUI_SetFont(&GUI_Font13_1);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 60);
- GUI_SetFont(&GUI_Font16_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 90);
- GUI_SetFont(&GUI_FontComic18B_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 120);
- GUI_SetFont(&GUI_FontComic24B_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 150);
- GUI_SetFont(&GUI_Font32B_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 180);
- while(1);
- }
复制代码
模拟器显示效果如下:
16.3.2 比例字体,带边框 STemWin库本身所带的字体库中只有GUI_Font20F_ASCII支持边框显示。显示效果如下:
下面在emWin模拟器上面跟大家演示一下显示效果,模拟器上运行的程序如下:
- #include "GUI.h"
-
- void MainTask(void)
- {
- GUI_Init();
- GUI_SetFont(&GUI_Font20F_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 0);
- while(1);
- }
复制代码
实际显示效果如下,不知道为什么没有边框的效果
不知道为什么没有边框的效果,有兴趣的可以尝试在开发板上面做个试验,应该是有边框效果的。
16.3.3 等宽字体 关于等宽字体已经在前面16.1.8小节跟大家贴了显示截图,这里跟大家演示一下emWin模拟上面的演示效果,运行程序如下:
- #include "GUI.h"
-
- void MainTask(void)
- {
- GUI_Init();
- GUI_SetFont(&GUI_Font6x8_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 0);
- GUI_SetFont(&GUI_Font8x8_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 30);
- GUI_SetFont(&GUI_Font8x10_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 60);
- GUI_SetFont(&GUI_Font8x13_ASCII);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 90);
- GUI_SetFont(&GUI_Font8x16x1x2);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 120);
- GUI_SetFont(&GUI_Font8x16x2x2);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 150);
- GUI_SetFont(&GUI_Font8x16x3x3);
- GUI_DispStringAt("Hello world! www.armfly.com", 0, 180);
- while(1);
- }
复制代码
实际显示效果如下:
16.3.4 数字字体(比例) STemWin支持的数字字体主要有以下四种:
下面是emWin模拟器上面运行的程序(仅支持数字显示,字符是无法显示的,切记):
- #include "GUI.h"
-
- void MainTask(void)
- {
- GUI_Init();
- GUI_SetFont(&GUI_FontD32);
- GUI_DispStringAt("0123456789", 0, 0);
- GUI_SetFont(&GUI_FontD48);
- GUI_DispStringAt("0123456789", 0, 32);
- GUI_SetFont(&GUI_FontD64);
- GUI_DispStringAt("0123456789", 0, 32+48);
- GUI_SetFont(&GUI_FontD80);
- GUI_DispStringAt("0123456789", 0, 32+48+64);
- while(1);
- }
复制代码
实际显示效果如下:
16.3.5 数字字体(等宽) STemWin支持的等宽数字字体主要有以下四种:
下面是emWin模拟器上面运行的程序(仅支持数字显示,字符是无法显示的,切记):
- #include "GUI.h"
-
- void MainTask(void)
- {
- GUI_Init();
- GUI_SetFont(&GUI_FontD24x32);
- GUI_DispStringAt("0123456789", 0, 0);
- GUI_SetFont(&GUI_FontD36x48);
- GUI_DispStringAt("0123456789", 0, 32);
- GUI_SetFont(&GUI_FontD48x64);
- GUI_DispStringAt("0123456789", 0, 32+48);
- GUI_SetFont(&GUI_FontD60x80);
- GUI_DispStringAt("0123456789", 0, 32+48+64);
- while(1);
- }
复制代码
实际显示效果如下: |