前期准备:

PC:
win7X64
vs2013/codeblocks
微软自带的微软雅黑字体

emwin 相关:
emwin5.42模拟器
emwin5.42英文手册
Bin2C.exe
FontCvt.exe

第一步:生成csv文件

excel中的内容:

①新建txt文件,另存为utf-8格式; ②复制excel中的内容到txt中,将 制表符 替换为 英文的逗号 ,并保存 ; ③将txt文件更改后缀名为 csv;

④得到如下文件(tmp1.csv):

第二步: 生成c文件

使用emwin的 Bin2C.exe 软件,将上一步的 tmp1.csv 装换为 tmp1.c 文件;

其内容为一个大数组:

bin2c.exe : 下载地址: http://dl.pconline.com.cn/download/766925-1.html

第三步: 生成对语言字库:

①记事本打开 tmp1.csv ,且另存为文件为Unicode格式的 tmp1.txt 文件;

②使用 tmp1.txt 文件通过FontCvt.exe 生成字库请详见安富莱教程: http://bbs.armfly.com/read.php?tid=6481

③通过②步骤得到 WRYHLight19_10_4bpp.c 字库文件.

第四步:把文件加载到模拟器中

① 点击打开 tmp1.c 之后, 将 actmp1 数组改为静态数组,且定义两个全局变量:


这里需要注意下: 使用 const 的数组,在后续步骤会使emwin奔溃,可能是emwin需要修改原数组.

②在数组最后增加函数:

第五步:多语言环境准备

① 复制文件 tmp1.xlsx 到一个新的文件 有序号的tmp1.xlsx, 增加序号,等会使用多语言的时候有用.


②在 MainTas.c 中将①中的序号定义为 enum 类型

③多语言宏定义

根据excel定义三个语言的宏定义

④初始化多语言使用环境

三个函数:

使用多语言注册 emwin的 utf-8 : GUI_UC_SetEncodeUTF8();

然后就是之前多语言的函数 : void getLanguageInfo(unsigned char* pLan, unsigned int pLanCnt)

最后是导入多语言到emwin中 : int GUI_LANG_LoadCSV(char * pFileData, U32 FileSize);

GUI_LANG_LoadCSV 的相关内容在 emwin5.42 手册的 P1135 ,使用函数 GUI_LANG_LoadCSV

注意:在这里如果使用函数GUI_LANG_LoadCSV的 pFileData 为const 类型,会使emwin 奔溃.切记!!!

第六步: 使用函数进行调用

使用 GUI_LANG_GetTextEx 进行调用emwin中的多语言数据.

GUI_LANG_GetTextEx 函数相关见手册 P1137.

附录:

1.文中源码和相关文件,由于软件有版权的问题,请自己自行百度,或者在st的固件库文件中有:


2.代码地址: 链接:http://pan.baidu.com/s/1bpItz0j 密码:uedt

3.官方例程: http://bbs.armfly.com/read.php?tid=5681 (已失效)