我总结了emWin实现中文显示的几种方案,如下表

实现方案编码方式存放媒介优点缺点适用范围建议

C格式Unicode内部Flash1、支持抗锯齿1、占用内部Flash适用于生成特定几个中文汉字

XBF格式Unicode任何存储介质1、支持抗锯齿

2、存放于任何储存介质1、采用UTF-8方式调用,需要把文件另存为UTF-8格式

2、需要将Unicode编码转化为UTF-8格式适用于非总线接口方式寻址的存储设备

SPI Flash、SD 卡、NAND Flash

SIF格式Unicode总线方式寻址的存储设备

SDRAM、SRAM、NOR Flash1、支持抗锯齿

2、比XBF方式稍快1、采用UTF-8方式调用,需要把文件另存为UTF-8格式

2、需要将Unicode编码转化为UTF-8格式适用于总线接口方式寻址的存储设备

SDRAM、SRAM、NOR Flash

矢量格式UnicodeSDRAM1、支持无损缩放1、消耗CPU和SDRAM资源巨大适用于要求字体矢量方式显示

移植全字库GB2312

GBK任何存储介质1、汉字操作方式与不用使用 GUI一样

2、对比XBF和SIF方式,不需把文件另存为UTF-8格式

3、存放于任何储存介质1、不支持抗锯齿

2、仅支持等宽字体适用于不习惯XBF和SIF操作方式

emWin 本身是不支持 GB2312 编码字符显示的,本文记录的是emWin“移植全字库(GB2312或GBK编码)”方案,即创建一种字体类型来实现GB2312 编码字符的显示,所采用的方式是早期 UCGUI3.98 时期遗留下来,但对那种方法进行了修改,以适合高版本 emWin5.xx 的使用。

1、将原emWin中文件夹【HanZi】复制到目标文件路径…\emWin\HanZi,如图1

图1

2、将原emWin中文件夹【fonts】复制到目标文件路径…\User\fonts,如图1

图2

3、在工程中建立文件夹及添加文件路径,添加完成,如图3

图3

4、修改emWin头文件【GUI_Type.h】,添加代码,如图4

图4

5、在文件【MainTask.h】中添加emWin字体的外部声明(这里使用的是宋体16),如图5

图5

6、把需要用到汉字的控件调用【&GUI_FontHZ16】,如LISTVIEW控件用到汉字显示,写成LISTVIEW_SetFont(hItem, &GUI_FontHZ16);并且屏蔽emWin自带的UTF-8界面方案,如代码1

/* 使能UTF-8解码用于汉字显示 */

//GUI_UC_SetEncodeUTF8();

代码1

注:在stm32h7上使用“移植全字库”方案一定要修改一个地方,具体见http://www.mazirong.com/?p=5308。原因是stm32h7硬件设计上的bug,不支持内存不对齐访问。

至此,编译0错误0警告,下载运行,可以在emWin上愉快的使用中文汉字了!如图6

图6

emwin 使用外部字库_emWin“移植全字库(GB2312或GBK编码)”相关推荐

  1. 高通 mtk 展讯等芯片机型读取 备份手机全字库分区 的一些操作解析

    这个工具结合mtkclient对软件修改了多机型支持,支持 高通 mtk 展讯等芯片的字库备份等其他多功能选项 通过个人实测图示展现以下软件的几个功能 1---安卓各选项简单说明 第一个安卓界面是读取 ...

  2. 【第3版emWin教程】第32章 emWin6.x的矢量字体(支持汉字全字库,Unicode编码,QSPI Flash方案)

    教程不断更新中:http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429 第32章       emWin6.x的矢量字体(支持汉字全字库 ...

  3. 【第3版emWin教程】第30章 emWin6.x的SIF格式全字库生成和使用方法(Unicode编码,QSPI Flash方案)

    教程不断更新中:http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429 第30章       emWin6.x的SIF格式全字库生成和使 ...

  4. 【STM32H7】第20章 ThreadX GUIX汉字显示(QSPI Flash全字库)

    最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429 第20章       ThreadX GUIX汉字显示(QSPI ...

  5. 全字库说文解字字体_整理了10款免费商用中文字体,超好用

    文章来源:logo设计视觉(ID:logoshijue) 字体不能随便用!大家应该经常有听到字体侵权索赔上几十上百万事吧!作为小小的设计师遇上了就倒霉啦!所以,我们要有足够版权意识,没事囤点免费可商用 ...

  6. 全字库说文解字字体_【180期】可商用字体大全,无版权纠纷!

    大家好我是万能的向前 今天向前为你精选了 可商用字体最全收集免费,无版权纠纷 每个设计高手都离不开百变的字体,但是,如果审美不到位字库不全,找不到合适的字体,领导.客户就相不中!那就有可能被降薪,糟心 ...

  7. 【MTK芯片机型的备份单分区与全字库各种方法解析与相关教程

    今天给初级友友码一个mtk芯片的教程.有兴趣的友友可以参阅下.mtk芯片的机型目前阶段来说.相对较少.当年mtk是以山寨机洒遍市场.换句话说.mtk芯片为当年品牌手机价格的下压有不可磨灭的功绩. 当你 ...

  8. emwin从外部flash中读取bmp图片显示

    在emwin中有提供了一个从外部读取图片数据进行显示的函数,如下: 而且提供了官方例程,不过官方历程中从外部读取是从外部文件系统中进行读取的bmp图片进行显示,官方例程如下 /* ********** ...

  9. <STM32F103ZET6>通过串口更新flash字库(包括LVGL字库烧写)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.效果展示及相关准备步骤 二.准备工作 二.程序讲解 1.引入库 总结 前言 本编文章是作者用时三天抽时间调试成功的 ...

  10. 用python画小鸭,Python 处理输入法字库(五笔极点字库转小鸭字库)

    Python 处理输入法字库(五笔极点字库转小鸭字库) Python 处理输入法字库(五笔极点字库转小鸭字库) 一直都是用的小鸭五笔,091新字库是极点格式的,刚开始懒得动,直接用极点五笔了,用了一段 ...

最新文章

  1. 如何安装apache服务器最新,云服务器如何安装apache
  2. 以太网接口保护方案设计图
  3. 北大教授郑也夫斗胆谈了7个天大的问题,每个都非常狠,也很现实
  4. 【Flink】did not rea ct to cancelling signal for 30 seconds, but is stuck No implementation was bound
  5. Semaphore (信号量)
  6. 通过xsl显示和输出XML数据
  7. webpack4.0学习笔记
  8. Discrete Cosine Transform Network for Guided Depth Map Super-Resolution
  9. 二重积分x^2+y^2_计算二重积分∫∫y^2dxdy,其中D是由圆周x^2+y^2=1所围成的闭区域...
  10. 面试必考之Java三大特性
  11. 想开发一套多人交友app必须知道的
  12. 【u盘提示:驱动器未格式化】如何解决?
  13. Wordvice推出人工智能工具 免费论文润色功能受欢迎
  14. android 自定义关机界面,怎么定制Android关机界面
  15. c语言程序设计数组实验报告,c语言程序设计实验报告(数组).doc
  16. mysql 索引超767_mysql Index column size too large 超过767错误解决方案(转)
  17. JavaScript实现抽奖(jQuery)
  18. 实验操作:Squid代理服务器应用(传统代理透明代理)--------------------------------------就整吧
  19. 面试积累(java配置环境变量)
  20. 网易云音乐真的是随机播放吗

热门文章

  1. 【免费看电视-直接看电视方法】打开电视发现看啥都要Vip?解决方法:
  2. html生成pdf java_java 中实现HTML 生成pdf
  3. 即时聊天:前端react+极光IM
  4. 大华平台显示归属服务器离线,大华报警联网系统方案
  5. 原生社区交友婚恋视频即时通讯双端APP源码ONE兔2.0版
  6. Git基础:第九、十章 Git可视化工具 Git团队协作以及合并时的diff工具
  7. 4019 设备树 Linux device tree 概述
  8. JVM内存模型及String对象内存分配
  9. 学习笔记之——YEDDA
  10. 基于51单片机的指纹考勤系统