历史上的今天
返回首页

历史上的今天

今天是:2026年02月01日(星期日)

正在发生

2023年02月01日 | 工程师笔记|STM32GUI_使用 TouchGFX 二进制字体(Binary Font)功能实现字体动态更新

2023-02-01 来源:zhihu

1、引言

自从 2013 年第一款侧重于 GUI 应用的 STM32F429x【内嵌 Chrom-ART 图形加速和 LTDC 控制器】开始,ST 就为大 家提供了 STM32MCU + X-Cube-TouchGFX 一站式 GUI 开发平台。越来越多的客户使用 STM32 + TouchGFX 开发智能手表/智能家居控制面板等嵌入式设备。

在嵌入式GUI开发的应用中,设备厂家希望自己的设备支持用户根据自己喜好来定义所选用的字体类型。从技术上讲,可以将字体和应用程序分离开,这样可以在嵌入式设备有限的存储空间上根据需要更新和升级字体的类型。


2、TouchGFX Binary font 介绍

TouchGFX为客户提供了二进制字体(Binary Font)的方法,这些字体没有链接到应用程序中,而是作为文件与应用程序分开存储,这些文件在运行时由应用程序加载并提供给TouchGFX。



当应用程序加载了二进制字体后,可以在TouchGFX字体系统中安装二进制字体。这里内置的 Font2 被应用程序加载的Binaryfont 替换。此后,TouchGFX 不再使用链接的Font2,使用自定义的Binary font进行显示。

下面例程展示了如何使用BinaryFont进行字体动态更新。


3、演示例程实现过程

3.1.打开 TouchGFX Designer 4.18.0

- TouchGFX4.18.0 (本文使用 4.18.0 举例,其他版本操作过程相同)

▪ 环境安装请参考网址: https://support.touchgfx.com/docs/introduction/installation

- VSCode

3.2.打开 TouchGFX Designer 4.18.0

选择 STM32F746DK 探索板,生成工程 :






3.3 选择 “文本配置”,选择 “二进制字体文件”



3.4 设计 Screen1 (添加 Images/TextArea/Buttons)



3.5 设置 Typographies :

- Typographies 设置 :


- Single Use 设置:



3.6 TouchGFX Designer 生成项目

可以在以下目录下找到verdana和verdana italic的二进制字体文件 :



3.7 在代码中安装二进制字体

在 TouchGFX 使用文本前,二进制字体必须从文件或其他存储中复制到可直接寻址的存储空间。当应用程序将二进制字体加载到内存时,它可以在 TouchGFX 中安装字体,之后 TouchGFX 将使用该字体而不是编译后的字体。


- 在FrontApplication.cpp安装默认的二进制字体:




3.7 添加 Button 交互,用于选择使用不同的二进制字体

- 添加交互,当按键按下,切换成相应的二进制字体 :


- 添加代码 Screen1View.hpp



- 添加代码 Screen1View.cpp




3.8 编译运行结果如下 :



验证

从以上的演示可以看到,通过TouchGFX Designer的简单配置和调用其提供的API,就可以轻松实现字体的动态更新。


厂家和用户可以根据场景需求灵活使用本功能。比如 ,厂家可以通过针对的不同用户群体来提供OTA服务,让用户动态更新自己的字体类型。这样由于各二进制字体可以占用同一块内存区域,厂家的硬件成本也会得到降低。


具体示例实现过程,请参考示例代码 : 《hello-tgfx4180-binary-font-v1.0-202112.7z》


推荐阅读

史海拾趣

台湾固锝(GD)公司的发展小趣事
接入输入信号后,观察输出信号的变化情况,调整增益控制参数以观察其对输出信号的影响。
Array Microsystems Inc公司的发展小趣事

随着技术的不断成熟和产品的广泛应用,Array Microsystems Inc开始寻求市场拓展的机会。公司积极与各大电子设备制造商建立合作关系,将其阵列传感器技术应用于智能手机、平板电脑等消费电子产品中。通过与这些企业的战略合作,Array Microsystems Inc不仅扩大了市场份额,还提升了品牌知名度。同时,公司还积极开拓海外市场,将产品推向全球范围。

Advanced Power Solutions公司的发展小趣事

Advanced Power Solutions公司非常重视人才培养和企业文化建设。公司注重员工的职业发展和培训,为员工提供了广阔的职业发展空间和学习机会。同时,公司还倡导开放、创新的企业文化,鼓励员工提出新的想法和建议。这种积极向上的企业文化吸引了大量优秀人才的加入,也为公司的持续发展提供了强大的动力。

以上五个故事框架仅用于说明Advanced Power Solutions公司可能的发展路径和成就,并不代表公司的实际历史。在实际撰写时,需要根据公司的具体情况进行调整和补充。

Centellax Inc公司的发展小趣事

Centellax注重企业文化建设和品牌建设。公司倡导“创新、协作、诚信、共赢”的价值观,鼓励员工积极进取、追求卓越。同时,公司还通过各种渠道宣传和推广品牌形象,提升品牌知名度和美誉度。

在品牌建设方面,Centellax注重与客户的沟通和互动。通过深入了解客户需求和市场变化,及时调整产品策略和市场策略。同时,公司还积极参与社会公益活动,履行社会责任,提升企业的社会形象和公信力。

这些故事旨在展示Centellax Inc公司在电子行业中的成长和发展过程,涉及技术创新、市场拓展、质量管理、人才培养和企业文化等多个方面。虽然这些故事是虚构的,但它们反映了电子行业中许多公司共同面临的挑战和机遇,以及如何通过不断努力和创新实现成功。

广东爱晟电子(exsense)公司的发展小趣事

2020年新冠疫情期间,爱晟电子积极响应政府号召,全力支持抗疫工作。公司不仅向抗疫一线捐赠了防疫物资,还组织员工参与志愿服务。同时,公司还利用自身的技术优势,研发出适用于医疗设备的NTC热敏电阻,为抗击疫情提供了有力支持。这些行动彰显了爱晟电子的社会责任感和担当精神。

AVAGO公司的发展小趣事

随着技术的不断进步,AVAGO公司开始致力于研发更先进的半导体技术。其中,一次重大的技术突破发生在光纤通信领域。公司成功研发出了一种高性能的光纤收发器,这一创新不仅提高了数据传输的速度和稳定性,还极大地推动了光纤通信技术的发展。这一产品迅速在市场上获得了广泛应用,为AVAGO公司带来了可观的收益。

问答坊 | AI 解惑

模拟设计与验证工具现状(1)

大约从20世纪80年代起,就有许多业内专家宣称模拟电路已走进死胡同,而数字应用将在电子世界中大放异彩,包括用在通信上的集成电路(integrated circuits,ICs)。在现实中,当然,现代化的通信系统同时需要将模拟及数字功能复杂地融合在一起。   ...…

查看全部问答>

从零开始DIY一台耳机放大器

几个问题     现在喜爱听音乐的朋友是越来越多了,为了听到更好的声音,很多朋友都购买了品质比较高的音源,比如高档声卡或HiFi入门级的CD台机,但却还是无法得到心目中的高品质声音表现。问题到底出在哪里?     &nbs ...…

查看全部问答>

为什么高频电路就这么难做

初涉足高频电路,按照网络上铺天盖地得电路图设计制作了多个300MHZ的放大电路,调试结果,不管是9018还是3355等三极管,信号根本没有放大反而衰减了,在电源上的信号也输出信号大。我百思不得其解,请高手为我指点迷津。…

查看全部问答>

proteul问题

出现下列问题,一直不知道是什么意思 SIMULATION LOG ============== Design:   E:\\C51实例\\MCS-51 examples_67 EEPROM\\EEPROM.DSN Doc. no.: Revision: Author:    Created:  06/08/06 Modified: 06/0 ...…

查看全部问答>

deviceList

编了一段程序,需要用到DeviceList。请问DeviceList.h和DeviceList.cppcpp在哪里可以下载到,谢谢!!…

查看全部问答>

急~~把PDA上的文件传输到PC机上的代码

急~~把PDA上的文件传输到PC机上的代码 高手指教,快点…

查看全部问答>

求RF4CE源码

TI网站上没找到。。。跪求。。…

查看全部问答>

申请TI的片子来了,怎么用大家给个意见吧

  430的单片机之前只是耳闻,还没用过,我51,EMC单片机会用,还有ARM9,ARM11会用。   现在要用这430还需要哪些工具和软件?? [ 本帖最后由 青叶漂零 于 2011-11-16 11:35 编辑 ]…

查看全部问答>

南华大学黄智伟 备战2013 有关 “高频无线电类”赛题的一些问题

本帖最后由 paulhyde 于 2014-9-15 03:07 编辑 南华大学黄智伟 备战2013 有关 “高频无线电类”赛题的一些问题    …

查看全部问答>

全副sensor武装起来的自动小车

自动小车可以作为一个简易的探测机器人来使用。对于有些危险场合的信息收集很有意义,低成本和易用性是产品市场化的关键。…

查看全部问答>