前期准备:
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 (已失效)