1、引言
自從 2013 年第一款側(cè)重于 GUI 應(yīng)用的 STM32F429x【內(nèi)嵌 Chrom-ART 圖形加速和 LTDC 控制器】開(kāi)始,ST 就為大 家提供了 STM32MCU + X-Cube-TouchGFX 一站式 GUI 開(kāi)發(fā)平臺(tái)。越來(lái)越多的客戶使用 STM32 + TouchGFX 開(kāi)發(fā)智能手表/智能家居控制面板等嵌入式設(shè)備。
在嵌入式GUI開(kāi)發(fā)的應(yīng)用中,設(shè)備廠家希望自己的設(shè)備支持用戶根據(jù)自己喜好來(lái)定義所選用的字體類型。從技術(shù)上講,可以將字體和應(yīng)用程序分離開(kāi),這樣可以在嵌入式設(shè)備有限的存儲(chǔ)空間上根據(jù)需要更新和升級(jí)字體的類型。
2、TouchGFX Binary font 介紹
TouchGFX為客戶提供了二進(jìn)制字體(Binary Font)的方法,這些字體沒(méi)有鏈接到應(yīng)用程序中,而是作為文件與應(yīng)用程序分開(kāi)存儲(chǔ),這些文件在運(yùn)行時(shí)由應(yīng)用程序加載并提供給TouchGFX。
當(dāng)應(yīng)用程序加載了二進(jìn)制字體后,可以在TouchGFX字體系統(tǒng)中安裝二進(jìn)制字體。這里內(nèi)置的 Font2 被應(yīng)用程序加載的Binaryfont 替換。此后,TouchGFX 不再使用鏈接的Font2,使用自定義的Binary font進(jìn)行顯示。
下面例程展示了如何使用BinaryFont進(jìn)行字體動(dòng)態(tài)更新。
3、演示例程實(shí)現(xiàn)過(guò)程
3.1.打開(kāi) TouchGFX Designer 4.18.0
- TouchGFX4.18.0 (本文使用 4.18.0 舉例,其他版本操作過(guò)程相同)
環(huán)境安裝請(qǐng)參考網(wǎng)址: https://support.touchgfx.com/docs/introduction/installation
- VSCode
3.2.打開(kāi) TouchGFX Designer 4.18.0
選擇 STM32F746DK 探索板,生成工程 :
3.3 選擇 “文本配置”,選擇 “二進(jìn)制字體文件”
3.4 設(shè)計(jì) Screen1 (添加 Images/TextArea/Buttons)
3.5 設(shè)置 Typographies :
- Typographies 設(shè)置 :
- Single Use 設(shè)置:
3.6 TouchGFX Designer 生成項(xiàng)目
可以在以下目錄下找到verdana和verdana italic的二進(jìn)制字體文件 :
3.7 在代碼中安裝二進(jìn)制字體
在 TouchGFX 使用文本前,二進(jìn)制字體必須從文件或其他存儲(chǔ)中復(fù)制到可直接尋址的存儲(chǔ)空間。當(dāng)應(yīng)用程序?qū)⒍M(jìn)制字體加載到內(nèi)存時(shí),它可以在 TouchGFX 中安裝字體,之后 TouchGFX 將使用該字體而不是編譯后的字體。
- 在FrontApplication.cpp安裝默認(rèn)的二進(jìn)制字體:
3.7 添加 Button 交互,用于選擇使用不同的二進(jìn)制字體
- 添加交互,當(dāng)按鍵按下,切換成相應(yīng)的二進(jìn)制字體 :
- 添加代碼 Screen1View.hpp
- 添加代碼 Screen1View.cpp
3.8 編譯運(yùn)行結(jié)果如下 :
驗(yàn)證
從以上的演示可以看到,通過(guò)TouchGFX Designer的簡(jiǎn)單配置和調(diào)用其提供的API,就可以輕松實(shí)現(xiàn)字體的動(dòng)態(tài)更新。
廠家和用戶可以根據(jù)場(chǎng)景需求靈活使用本功能。比如 ,廠家可以通過(guò)針對(duì)的不同用戶群體來(lái)提供OTA服務(wù),讓用戶動(dòng)態(tài)更新自己的字體類型。這樣由于各二進(jìn)制字體可以占用同一塊內(nèi)存區(qū)域,廠家的硬件成本也會(huì)得到降低。
具體示例實(shí)現(xiàn)過(guò)程,請(qǐng)參考示例代碼 : 《hello-tgfx4180-binary-font-v1.0-202112.7z》
THE END
審核編輯 :李倩
-
控制器
+關(guān)注
關(guān)注
114文章
17067瀏覽量
183766 -
二進(jìn)制
+關(guān)注
關(guān)注
2文章
806瀏覽量
42277
原文標(biāo)題:工程師筆記|STM32GUI_使用 TouchGFX 二進(jìn)制字體(Binary Font)功能實(shí)現(xiàn)字體動(dòng)態(tài)更新
文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
Allegro Skill字符功能之設(shè)置字符位置及字體

利用普源示波器進(jìn)行功率器件動(dòng)態(tài)特性測(cè)試的研究

求助,關(guān)于GUIguider1.9.0主界面上方生成字體功能問(wèn)題求解
DLP3010EVM-LC對(duì)固件進(jìn)行更新時(shí),一直處于Erasing flash data,為什么?
AirPods如何進(jìn)行固件更新
智能語(yǔ)音報(bào)站,公交動(dòng)態(tài)更新,城市形象展示…… 中心城區(qū)智能公交電子站牌亮相

xbf 字體 在 串口屏中的應(yīng)用有什么優(yōu)勢(shì)
通過(guò)I2C進(jìn)行TPS65987和TPS65988 SPI閃存固件更新

使用LM5177 4開(kāi)關(guān)降壓/升壓控制器進(jìn)行動(dòng)態(tài)電流跟蹤

使用主機(jī)進(jìn)行TPS257x-Q1/77x-Q1固件更新

使用TPSM63610對(duì)USB Type-C應(yīng)用進(jìn)行動(dòng)態(tài)輸出電壓控制

微軟更新Windows 11 24H2版本,優(yōu)化相關(guān)二進(jìn)制文件
Allegro X 23.11 版本更新 I PCB 設(shè)計(jì):與器件關(guān)聯(lián)的動(dòng)態(tài)禁布區(qū)

評(píng)論