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

发布时间:2023-02-01  

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》


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    );     return ch; } 修改字体大小 在编辑器右键->preferences选择General->Appearance->Colors and Fonts->......
    符宽度 = 8 像素)。这就是为什么“角色RAM”使用“CounterX[6:1]”而不是上面的“CounterX[5:0]”的原因。 在中,“字体ROM”实际上是一个RAM是有道理的。这样,可以在运行时加载或更改字体......
    开关电源的输出电压怎么改变; 怎么改变开关电源的输出电压,现在的开关电源输出电压的选择很多,常见有24V,12V,5V等,有时候我们想改变输出电压,不是一个常用的电压值,那么......
    两相电机改三相电机怎么改法;  两相电机能改三相电机吗   理论上可以将两相电机改装为三相电机,但需要进行大量的改造和调整,包括更换电机的定子和转子、改变接线方式、安装三相电源和控制系统等。而且......
    【STM32】keil软件常用使用技巧;01. 文本美化 文本美化,主要是设置一些关键字、注释、数字等的颜色和字体。前面我们在介绍 MDK5新建工程的时候看到界面,这是 MDK 默认的设置,可以看到其中的关键字和注释等字体......
    电机的四种调速方式 2800转电机怎么改成1400转;  电机的四种调速方式   电机的四种常见的调速方式如下:   变频调速:通过改变交流电源电压的频率来改变电机的转速。这种......
    串口0作为调试端口,怎么改变为接收数据接口;我们在使用嵌入式linux调试板子时候必须要有调试接口,一般是串口0. 我就以我使用的S3C2416的板子为例: 启动u-boot打印......
    字体选择 3)字体大小选择 4)字体颜色设置 5)阅读背景设置 6)书签设置 7)目录生成功能(字符匹配) 8)章节跳转功能(基于目录生成功能) 9)阅读翻页设置(滚动/切换) 项目功能要求 项目......
    再来详细介绍下Proteus怎么结合Keil软件搭建强大的51单片机联合调试环境。 我们先来看下联合调试仿真效果 Keil C51软件版本:V9.54Proteus软件版本:8.9 怎么......
    伺服电子凸轮发生偏移怎么改善?;在传统机械里,轴与轴之间是靠机构来传动的,例如下图所示,主/从轴间以一条平皮带相连,当主轴开始转动,从轴也一起转动!假设主/从轴的轮径相同,并在轮上都做一个 ∇ 标记......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>