|
EMWIN中显示中文
该方法使用的FONTCVT工具生成子库的方式,针对少量中文的显示会很方便。
步骤一
:创建文本文档并将需要支持的中文汉子输入到文档中。汉子是按照编码来获取的,所以相同汉子不需要重复输入。如下图所示:
步骤二:
修改文本文档的编码方式并保存,此处修改编码方式使用的notepad++,修改为下图的编码格式(UCS-2-Little Endianb编码)。编码方式不对时,会出现下图的提示,文件会导入失败。修改完编码格式后文件就准备就绪了。
步骤三:
下面进行字库软件的配置,打开FontCvt软件按下图进行设置。显示中文,Encodeing必须选择"16 Bit UNICODE";字体选择也必须是包含中文的(微软雅黑、宋体等均可)。软件打开后,默认包含所有文字。点击“Edit-> Disable all characters”菜单,不包含任何字体。(Tips:白色背景为选中文字,灰色背景为未选中文件)
步骤四:
下面开始导入字库文件,也就是步骤一、二产生的Txt文件。 回到FontCvtST.exe软件,单击“Edit->Read pattern file ...”后,选中txt文本文档
(Tips:如果弹出“The following character codes found in ...”的对话框,是因为txt文档的编码方式没有选择对)
步骤五:
单击“File -> Save As ...” 生成一个“yahei20.c”的文件,将该文件添加到我们的工程里。添加到工程后,如下图所示,再c文件的开头会有一个字库文件extern GUI_CONST_STORAGE GUI_FONT GUI_Fontyahei20;
步骤六:
使用字库文件方法如下图所示,有两种情况,如果keil工程的编码格式为UTF-8,此时想要显示中文只需要直接输入中文就可以调用,如下所示
- extern GUI_CONST_STORAGE GUI_FONT GUI_Fontyahei20; //声明字体
- int main(void)
- {
- SetSysClockInternal(); //使用内部时钟
- SysTick_Init();
- NVIC_Configuration();
- PeriIO_Init();
- OLED_Config();
- I2C_GPIO_Init();
- uart1_init(115200);
- BME280_init();
-
- RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC,ENABLE);//开启CRC用于emwin
- WM_SetCreateFlags(WM_CF_MEMDEV);
- GUI_Init();
-
- GUI_SetFont(&GUI_Fontyahei20);
- GUI_UC_SetEncodeUTF8();
- GUI_DispStringAt("压强",0,20); //通过keil软件自己的编码来显示汉子
- GUI_DispStringAt("温度",20,20);
- GUI_DispStringAt("湿度",40,20);
- }
复制代码
如果keil工程的编码格式不是UTF-8,想要显示汉子,需要先通过U2C软件得到汉子的UTF8编码,然后通过编码值来显示汉子。比如想要显示汉子“压强”,新建文本文档,输入汉子“压强”,保存文件为UTF-8格式,然后通过软件U2C打开刚刚保存的文件,点击转换会在同路径下生成一个同名的.c文件。然后点击close。打开.c文件里面就是汉子对应的编码值,如压强生成的编码值就是"\xe5\x8e\x8b\xe5\xbc\xba"。显示汉子时只需要将上面的压强汉子换成对应的编码值即可,如下代码所示
- extern GUI_CONST_STORAGE GUI_FONT GUI_Fontyahei20; //声明字体
- int main(void)
- {
- SetSysClockInternal(); //使用内部时钟
- SysTick_Init();
- NVIC_Configuration();
- PeriIO_Init();
- OLED_Config();
- I2C_GPIO_Init();
- uart1_init(115200);
- BME280_init();
-
- RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC,ENABLE);//开启CRC用于emwin
- WM_SetCreateFlags(WM_CF_MEMDEV);
- GUI_Init();
-
- GUI_SetFont(&GUI_Fontyahei20);
- GUI_UC_SetEncodeUTF8();
- GUI_DispStringAt("\xe5\x8e\x8b\xe5\xbc\xba",0,20); //通过编码值显示汉子,显示压强
- }
复制代码
该说明使用工具如下,可以在附件中下载
|
-
-
-
工具.zip
241.89 KB, 下载次数: 22, 下载积分: 黑币 -5
评分
-
查看全部评分
|