[应用相关] TouchGFX基础:再谈中文显示

[复制链接]
1642|32
 楼主| functions 发表于 2020-6-24 13:56 | 显示全部楼层 |阅读模式
有关在touchgfx中显示中文的基本介绍,请见之前的**:TouchGFX基础:显示中文
本文将介绍如何加入用户自己的字体,比如下面这个效果:

13485ef2eb3fa99d7.png



944965ef2eb0fe0a3f.png



 楼主| functions 发表于 2020-6-24 13:58 | 显示全部楼层
这是 STM32F746G-DISCO 开发板的效果。之前的**都是基于 F769I-DISCO 板子的,本**开始,将在 STM32F746G-DISCO 板子上实验,主要原因是746板子的显示部分只用到LTDC接口,相比769板子的DSI+LTDC接口要简单的多,便于后续对touchgfx代码实现的分析。
 楼主| functions 发表于 2020-6-24 13:59 | 显示全部楼层
好,下面来看看如何在板子上实现启功先生的“启体”。首先要获得字体文件,就是称为TrueType的字体文件,后缀名为.ttf。网上有ttf字体下载地址,比如《http://www.font5.com.cn/zitixiazai/1/889.html》,从下载的包里解压出ttf文件:FZQiTi-S14S.TTF,好神秘的名字,估计是“方正启体”的意思。
 楼主| functions 发表于 2020-6-24 13:59 | 显示全部楼层
为了使用这个新字体,有两种方法,一种是把字体文件加入到windows 10系统中,即copy ttf文件到 C:\Windows\Fonts 目录下,相当于为系统安装了新字体;还有一种方法是,新字体只提供给touchgfx使用。我们使用第二种方法。

 楼主| functions 发表于 2020-6-24 14:00 | 显示全部楼层
使用 Touchgfx Designer 新建一个针对 STM32F746G-DISCO 板子的应用,选择 STM32F746G Discovery Kit :
779605ef2ebe5d003c.png
 楼主| functions 发表于 2020-6-24 14:01 | 显示全部楼层
这里有个小问题,关于746板子的配置模板有1.0和2.0两个版本,系统默认显示的是1.0版本的,它们的区别是2.0版本能自动生成STM32CUBE的配置文件、方便后续使用CUBE来对MUC进行配置,所以我们要选择2.0的模板来使用。点击上图中的 i 符号:

702065ef2ec1d2c469.png
 楼主| functions 发表于 2020-6-24 14:01 | 显示全部楼层
点击下拉框,选择v2.0.0:
869535ef2ec39be471.png
 楼主| functions 发表于 2020-6-24 14:02 | 显示全部楼层
保持默认的空白画布(Blank UI):
108975ef2ec5d403fb.png
 楼主| functions 发表于 2020-6-24 14:03 | 显示全部楼层
添加一个 Box 控件、修改成纯蓝的背景色:
763615ef2ec91592a4.png
 楼主| functions 发表于 2020-6-24 14:03 | 显示全部楼层
添加一行纯白色的文字:
295805ef2ecb5063b1.png
 楼主| functions 发表于 2020-6-24 14:04 | 显示全部楼层
看过之前关于字体配置**的读者知道,上面的中文是否能正确显示、按什么字体显示,是取决于默认的名为 Large 的”字体类“中选择了什么样的字体(Font):
666895ef2ece328d02.png
 楼主| functions 发表于 2020-6-24 14:05 | 显示全部楼层
当前选择的字体是Verdana,这是个西文字体,不支持中文的。我们需要把”启体“字体文件装载到当前工程中。先Ctrl+S、保存当前工程,然后将之前下载好的字体文件 FZQiTi-S14S.TTF copy到当前工程的 fonts 目录下:

474235ef2ed26add6e.png
 楼主| functions 发表于 2020-6-24 14:06 | 显示全部楼层
然后,点击 Large 条目的 Font 下拉框,查找  FZQiTi-S14S 字体名称,但是F开头的字体名称中没有我们新加入的字体:
876475ef2ed4ae1887.png
 楼主| functions 发表于 2020-6-24 14:06 | 显示全部楼层
可以这样理解,Touchgfx Designer 貌似不能动态感知到我们已经为工程添加了一个新字体文件。关闭Touchgfx Designer、重新启动,再来检查字体:
532715ef2ed6e40823.png
新字体ok了!
 楼主| functions 发表于 2020-6-24 14:07 | 显示全部楼层
回到主界面,测试用的那一行中文也变成新的字体了:
225065ef2eda361834.png
 楼主| functions 发表于 2020-6-24 14:08 | 显示全部楼层
生成代码,运行模拟器:
63705ef2edc20dd03.png
运行结果正确!
 楼主| functions 发表于 2020-6-24 14:08 | 显示全部楼层
回到设计界面,修改成2行文字:
525275ef2edec0d401.png
再次生成代码、运行模拟器,得到正确结果(截图略)。
 楼主| functions 发表于 2020-6-24 14:09 | 显示全部楼层
进入IAR,编译、可以正确生成hex目标文件:
753245ef2ee186d629.png
 楼主| functions 发表于 2020-6-24 14:10 | 显示全部楼层
烧写,出错了:
648125ef2ee33bce04.png
 楼主| functions 发表于 2020-6-24 14:10 | 显示全部楼层
717005ef2ee4e2c685.png
提示信息说的是,片外flash(起始地址为0x9000 0000)无法烧写。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

39

主题

446

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部