TouchGFX基础:再谈中文显示

有关在touchgfx中显示中文的基本介绍,请见之前的文章:TouchGFX基础:显示中文

本文将介绍如何加入用户自己的字体,比如下面这个效果:


图一


图二

这是 STM32F746G-DISCO 开发板的效果。之前的文章都是基于 F769I-DISCO 板子的,本文章开始,将在 STM32F746G-DISCO 板子上实验,主要原因是746板子的显示部分只用到LTDC接口,相比769板子的DSI+LTDC接口要简单的多,便于后续对touchgfx代码实现的分析。

好,下面来看看如何在板子上实现启功先生的“启体”。首先要获得字体文件,就是称为TrueType的字体文件,后缀名为.ttf。网上有ttf字体下载地址,比如《字体下载 - 中文字体下载 - 启功字体简体下载》,从下载的包里解压出ttf文件:FZQiTi-S14S.TTF,好神秘的名字,估计是“方正启体”的意思。为了使用这个新字体,有两种方法,一种是把字体文件加入到windows 10系统中,即copy ttf文件到 C:\Windows\Fonts 目录下,相当于为系统安装了新字体;还有一种方法是,新字体只提供给touchgfx使用。我们使用第二种方法。

使用 Touchgfx Designer 新建一个针对 STM32F746G-DISCO 板子的应用,选择 STM32F746G Discovery Kit :


图三

这里有个小问题,关于746板子的配置模板有1.0和2.0两个版本,系统默认显示的是1.0版本的,它们的区别是2.0版本能自动生成STM32CUBE的配置文件、方便后续使用CUBE来对MUC进行配置,所以我们要选择2.0的模板来使用。点击上图中的 i 符号:


图四

点击下拉框,选择v2.0.0:


图五

保持默认的空白画布(Blank UI):

图六

添加一个 Box 控件、修改成纯蓝的背景色:


图七

添加一行纯白色的文字:


图八

看过之前关于字体配置文章的读者知道,上面的中文是否能正确显示、按什么字体显示,是取决于默认的名为 Large 的”字体类“中选择了什么样的字体(Font):


图九

当前选择的字体是Verdana,这是个西文字体,不支持中文的。我们需要把”启体“字体文件装载到当前工程中。先Ctrl+S、保存当前工程,然后将之前下载好的字体文件 FZQiTi-S14S.TTF copy到当前工程的 fonts 目录下:


图十

然后,点击 Large 条目的 Font 下拉框,查找  FZQiTi-S14S 字体名称,但是F开头的字体名称中没有我们新加入的字体:


图十一

可以这样理解,Touchgfx Designer 貌似不能动态感知到我们已经为工程添加了一个新字体文件。关闭Touchgfx Designer、重新启动,再来检查字体:


图十二

新字体ok了!回到主界面,测试用的那一行中文也变成新的字体了:


图十三

生成代码,运行模拟器:


图十四

运行结果正确!回到设计界面,修改成2行文字:


图十五

再次生成代码、运行模拟器,得到正确结果(截图略)。进入IAR,编译、可以正确生成hex目标文件:


图十六

烧写,出错了:


图十七


图十八

提示信息说的是,片外flash(起始地址为0x9000 0000)无法烧写。这是因为IAR中默认的烧写配置文件不对(整个IAR工程是Touchgfx Designer 自动生成的,不知道为什么有这个问题),问题容易解决,IAR里安装的烧写文件是直接支持 STM32F746G-DISCO 板子的(769I板子就没这么幸运了!)。在IAR工程选项窗口中,更换烧写配置文件:


图十九

点击 ”...“ 按钮,在弹出窗口中选择 FlashSTM32F7xx_STM32F746G-DISCO.board :


图二十

再次烧写,成功:


图二十一

板子运行情况:


图二十二

小结:

1、为了正确显示中文,需要装载对应的字体 .ttf 文件,copy到工程对应的fonts目录下。

2、重启动Designer、使新字体生效。

3、IAR烧写hex文件时,需要正确配置烧写文件。


下一篇文章将介绍如何通过freeRTOS任务传递消息实现MCU控制功能,敬请期待!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341