硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4105|回复: 4
收起左侧

[emWin] 关于使用FontCvt在 emwin 模拟器中显示汉字

[复制链接]

10

主题

51

回帖

10

积分

初级会员

积分
10
发表于 2016-3-16 23:25:33 | 显示全部楼层 |阅读模式
请问在模拟器中使用FontCvt在 emwin 模拟器中显示汉字时异常,根本无法显示,在开发板上也无法显示:
关键代码:

==================================================================

extern GUI_CONST_STORAGE GUI_FONT GUI_FontChinese;


extern GUI_CONST_STORAGE unsigned char acGUI_FontChinese_7801[72];



    GUI_UC_SetEncodeUTF8();
    GUI_SetFont(&GUI_FontChinese);
    GUI_SetColor(GUI_WHITE);
    GUI_SetTextMode(GUI_TM_TRANS);
    GUI_DispStringHCenterAt(acGUI_FontChinese_7801, 10, 10);


==================================================================

/*********************************************************************
*                SEGGER Microcontroller GmbH & Co. KG                *
*        Solutions for real time microcontroller applications        *
*                           www.segger.com                           *
**********************************************************************
*                                                                    *
* C-file generated by                                                *
*                                                                    *
*        Font Converter (Demoversion) for emWin version 5.30         *
*        Compiled Jun 30 2015, 14:58:45                              *
*                                                                    *
*        (c) 1998 - 2015 Segger Microcontroller GmbH & Co. KG        *
*                                                                    *
**********************************************************************
*                                                                    *
* Source file: Chinese.c                                             *
* Font:        宋体                                                  *
* Height:      24                                                    *
*                                                                    *
**********************************************************************
*                                                                    *
* Initial font height:  24                                           *
* Range disabled:       0000 - FFFF                                  *
* Range enabled:        7801 - 7801                                  *
*                                                                    *
**********************************************************************
*/


#include "GUI.h"


#ifndef GUI_CONST_STORAGE
  #define GUI_CONST_STORAGE const
#endif


/* The following line needs to be included in any file selecting the
   font.
*/
extern GUI_CONST_STORAGE GUI_FONT GUI_FontChinese;


/* Start of unicode area <CJK Unified Ideographs> */
GUI_CONST_STORAGE unsigned char acGUI_FontChinese_7801[ 72] = { /* code 7801 */
  XX__X___,__XXXXXX,X_X_X__X,
  __X__XX_,X_X_XXX_,XX_XX_XX,
  X_X__XXX,XXX__X__,_______X,
  _X___XX_,XX______,X__X_XX_,
  __XXXXX_,__X_X_XX,___XXXX_,
  __X_XXX_,X___X___,XXXXXXXX,
  XXX_X___,__X__X_X,_X_X_XXX,
  __X____X,_X__X_XX,____XX_X,
  _XXX_XX_,X_XX_XX_,_X___XX_,
  XXXXXX_X,_______X,X_XX____,
  _X_X_XX_,_X___X__,__XXX___,
  X__XXXX_,_XX___XX,X_XXXX_X,
  _X__XX__,X_XX_X__,XX_XX_X_,
  _XXXX_XX,XX_XXXX_,_X__X__X,
  _X_XXXXX,___XX_X_,__X___XX,
  X_X__X_X,X___XX_X,____XX_X,
  _XX_____,_XX_XX_X,X_X__X__,
  XX_XXXX_,X_XXX_XX,XX______,
  X_X___XX,X__XX___,X_XX____,
  X__XX___,X__X___X,_X_XX__X,
  __XXX_XX,X_X___X_,XXXX____,
  __XXXXX_,___X_X_X,_X__XXX_,
  _XX_X_X_,XXX___X_,X_X_X___,
  XX___X_X,XXXX__X_,X_XXXXXX};


GUI_CONST_STORAGE GUI_CHARINFO GUI_FontChinese_CharInfo[1] = {
   {  24,  24,  1, acGUI_FontChinese_7801 } /* code 7801 */
};


GUI_CONST_STORAGE GUI_FONT_PROP GUI_FontChinese_Prop1 = {
   0x7801 /* first character */
  ,0x7801 /* last character  */
  ,&GUI_FontChinese_CharInfo[  0] /* address of first character */
  ,(GUI_CONST_STORAGE GUI_FONT_PROP *)0 /* pointer to next GUI_FONT_PROP */
};


GUI_CONST_STORAGE GUI_FONT GUI_FontChinese = {
   GUI_FONTTYPE_PROP /* type of font    */
  ,24 /* height of font  */
  ,24 /* space of font y */
  ,1 /* magnification x */
  ,1 /* magnification y */
  ,{&GUI_FontChinese_Prop1}
  ,21 /* Baseline */
  ,11 /* Height of lowercase characters */
  ,16 /* Height of capital characters */
};
我用的是第十八章的方法,因为我只需要用到几个汉字,不需要整个字库,所以想自己提取。
我的文件格式也是UTF-8,我目前只提取了一个“码”字。
请问还有其他简单的方法能满足我的需求吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115711
QQ
发表于 2016-3-17 09:34:26 | 显示全部楼层
1. 你截图上面的是什么字,感觉是乱码,应该是用FontCvt的测试版生成的,务必使用STemWin软件包里面的。
2. 修改文件格式是修改的你汉字显示时所在的文件,这点要注意,不是修改FontCvt转换后的文件。

你再试试,开发板上面指定是没问题的。
回复

使用道具 举报

10

主题

51

回帖

10

积分

初级会员

积分
10
 楼主| 发表于 2016-3-17 10:09:32 | 显示全部楼层

回 eric2013 的帖子

eric2013:1. 你截图上面的是什么字,感觉是乱码,应该是用FontCvt的测试版生成的,务必使用STemWin软件包里面的。
2. 修改文件格式是修改的你汉字显示时所在的文件,这点要注意,不是修改FontCvt转换后的文件。

你再试试,开发板上面指定是没问题的。 (2016-03-17 09:34) 
1. 我上面显示的是一个“码”字,我用的工具是emwin5.30 Tool 目录下的工具
2. 修改格式的文件是我调用要显示汉字的文件。
回复

使用道具 举报

10

主题

51

回帖

10

积分

初级会员

积分
10
 楼主| 发表于 2016-3-17 16:55:47 | 显示全部楼层

回 eric2013 的帖子

eric2013:
1. 你截图上面的是什么字,感觉是乱码,应该是用FontCvt的测试版生成的,务必使用STemWin软件包里面的。
2. 修改文件格式是修改的你汉字显示时所在的文件,这点要注意,不是修改FontCvt转换后的文件。

你再试试,开发板上面指定是没问题的。
你截图上面的是什么字,感觉是乱码,应该是用FontCvt的测试版生成的,务必使用STemWin软件包里面的
我在生成字体的时候提示我用的是demo版本的,难道是因为这个原因吗?有正式版本吗?请提供一下链接,谢谢!
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115711
QQ
发表于 2016-3-17 17:01:32 | 显示全部楼层

回 cingcing 的帖子

cingcing:你截图上面的是什么字,感觉是乱码,应该是用FontCvt的测试版生成的,务必使用STemWin软件包里面的。
我在生成字体的时候提示我用的是demo版本的,难道是因为这个原因吗?有正式版本吗?请提供一下链接,谢谢!

 (2016-03-17 16:55) 
使用这个软件包里面的就行:http://www.armbbs.cn/forum.php?mod=viewthread&tid=13955
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-13 12:39 , Processed in 0.374642 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表