您尚未登录。

楼主 #1 2020-02-11 17:19:16

5761193jia
会员
注册时间: 2018-02-09
已发帖子: 30
积分: 9

图标ttf字体在emwin模拟器上显示正常,但应用在目标板(新塘的32926)只显示方格,请教各位大神!

情况如下:
1、emwin模拟环境用为codeblocks,模拟运行时,ttf字体(xh.ttf)和图标ttf字体(ALiIconfont.ttf)都能正常显示;
2、目标板为裸板运行,文件系统采用新唐自带的;
3、目标板显示ttf字体正常,但显示图标ttf字体为方格。经比较:目标板运行时读图标ttf文件的内容与emwin 模拟环境下读取的图标ttf文件内容是一致的,排除文件系统的问题。(我也不知道有没更好的方法去核对)
4、查GUI_TTF_CreateFontAA()函数返回是成功;
上传了相关源文件(程序有点乱,误拍砖哈!),麻烦哪位哪位大神能否指点一下方向,一样的程序在emwin模拟器运行正常,但目标板上图标ttf字体不显示。是不是用在目标板时有特别要注意的地方?

GUIDEMO_Start目标板.rar

GUIDEMO_Start(emwin模拟环境).rar



emwin环境.jpg

最近编辑记录 5761193jia (2020-02-11 17:40:23)

离线

楼主 #2 2020-02-11 17:20:24

5761193jia
会员
注册时间: 2018-02-09
已发帖子: 30
积分: 9

Re: 图标ttf字体在emwin模拟器上显示正常,但应用在目标板(新塘的32926)只显示方格,请教各位大神!

文件好像没上传成功

离线

楼主 #4 2020-02-12 10:41:48

5761193jia
会员
注册时间: 2018-02-09
已发帖子: 30
积分: 9

Re: 图标ttf字体在emwin模拟器上显示正常,但应用在目标板(新塘的32926)只显示方格,请教各位大神!

不好意思,目标板的代码发错了,以这个为准!谢谢
GuiStart(目标板).rar

离线

楼主 #5 2020-02-12 10:48:18

5761193jia
会员
注册时间: 2018-02-09
已发帖子: 30
积分: 9

Re: 图标ttf字体在emwin模拟器上显示正常,但应用在目标板(新塘的32926)只显示方格,请教各位大神!

Jmhh247 说:

按你的描述,可能是编码问题

试试:把相关C文件转为UTF-8-BOM,用notepad++就行

谢谢Jmhh247:
转了MainTask()所在的C文件GuiStart.c,还是不行。不知道是否还有别的文件也要格式转换。

离线

楼主 #7 2020-02-12 15:57:22

5761193jia
会员
注册时间: 2018-02-09
已发帖子: 30
积分: 9

Re: 图标ttf字体在emwin模拟器上显示正常,但应用在目标板(新塘的32926)只显示方格,请教各位大神!

@Jmhh247,谢谢您。两种格式都试过还是不行,MDK4.74编译。板子上运行的照片我也拍了一下,如下图。另外 TTF_FontCreate()的C文件在以下附件中,不知哪位大神有时间能否帮忙看看?谢谢啦!
CreateFont_ttf.rar
_20200212153611.jpg
pic.jpg

离线

楼主 #10 2020-02-13 09:32:17

5761193jia
会员
注册时间: 2018-02-09
已发帖子: 30
积分: 9

Re: 图标ttf字体在emwin模拟器上显示正常,但应用在目标板(新塘的32926)只显示方格,请教各位大神!

晕哥 说:
GUI_UC_SetEncodeUTF8()


//GUI_DispStringAt("\ue631",200,200);  //改为下行:
GUI_DispStringAt("\xEE\x98\xB1",200,200);

按上面修改先试一试。

参考: https://www.cnblogs.com/fancyop/p/emWin_Chinese_Show_Tutorial.html

多谢,晕哥和notepad--的指点,直接用UTF-8编码就OK!如图。但这样人工转也麻烦,确定C文件转为了UTF-8,因为文字能正常显示,不知问题何在,会不会是MDK哪里需要设置?
_20200213092258.jpg

最近编辑记录 5761193jia (2020-02-13 09:34:28)

离线

楼主 #13 2020-02-13 12:32:56

5761193jia
会员
注册时间: 2018-02-09
已发帖子: 30
积分: 9

Re: 图标ttf字体在emwin模拟器上显示正常,但应用在目标板(新塘的32926)只显示方格,请教各位大神!

晕哥 说:

估计7楼是c文件另存为 无bom utf8 文件, 可能这种操作对用16进制编码字符串的文件无效吧.

最后改成啥样了,麻烦楼主发一个文件上来看看, 谢谢。

@晕哥,jmhh247:按晕哥在9楼的方法,直接在程序中用utf-8编码。
1.jpg
GuiStart.rar

最近编辑记录 5761193jia (2020-02-13 13:01:32)

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn