0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用BinaryFont進(jìn)行字體動(dòng)態(tài)更新

STM32單片機(jī) ? 來源:STM32單片機(jī) ? 作者:STM32單片機(jī) ? 2022-08-03 09:30 ? 次閱讀

1、引言

自從 2013 年第一款側(cè)重于 GUI 應(yīng)用的 STM32F429x【內(nèi)嵌 Chrom-ART 圖形加速和 LTDC 控制器】開始,ST 就為大 家提供了 STM32MCU + X-Cube-TouchGFX 一站式 GUI 開發(fā)平臺(tái)。越來越多的客戶使用 STM32 + TouchGFX 開發(fā)智能手表/智能家居控制面板等嵌入式設(shè)備。

在嵌入式GUI開發(fā)的應(yīng)用中,設(shè)備廠家希望自己的設(shè)備支持用戶根據(jù)自己喜好來定義所選用的字體類型。從技術(shù)上講,可以將字體和應(yīng)用程序分離開,這樣可以在嵌入式設(shè)備有限的存儲(chǔ)空間上根據(jù)需要更新和升級(jí)字體的類型。

2、TouchGFX Binary font 介紹

TouchGFX為客戶提供了二進(jìn)制字體(Binary Font)的方法,這些字體沒有鏈接到應(yīng)用程序中,而是作為文件與應(yīng)用程序分開存儲(chǔ),這些文件在運(yùn)行時(shí)由應(yīng)用程序加載并提供給TouchGFX。

2b43dc4e-12c4-11ed-ba43-dac502259ad0.png

當(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)過程

3.1.打開 TouchGFX Designer 4.18.0

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

環(huán)境安裝請(qǐng)參考網(wǎng)址: https://support.touchgfx.com/docs/introduction/installation

- VSCode

3.2.打開 TouchGFX Designer 4.18.0

選擇 STM32F746DK 探索板,生成工程 :

2b953288-12c4-11ed-ba43-dac502259ad0.png

3.3 選擇 “文本配置”,選擇 “二進(jìn)制字體文件”

2bb467b6-12c4-11ed-ba43-dac502259ad0.png

3.4 設(shè)計(jì) Screen1 (添加 Images/TextArea/Buttons)

2bd4ae22-12c4-11ed-ba43-dac502259ad0.png

3.5 設(shè)置 Typographies :

- Typographies 設(shè)置 :

2bfacb02-12c4-11ed-ba43-dac502259ad0.png

- Single Use 設(shè)置:

2c165430-12c4-11ed-ba43-dac502259ad0.png

3.6 TouchGFX Designer 生成項(xiàng)目

可以在以下目錄下找到verdana和verdana italic的二進(jìn)制字體文件 :

2c33be8a-12c4-11ed-ba43-dac502259ad0.png

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)制字體:

2c450e06-12c4-11ed-ba43-dac502259ad0.png

2c690cb6-12c4-11ed-ba43-dac502259ad0.png

3.7 添加 Button 交互,用于選擇使用不同的二進(jìn)制字體

- 添加交互,當(dāng)按鍵按下,切換成相應(yīng)的二進(jìn)制字體 :

2c8df33c-12c4-11ed-ba43-dac502259ad0.png

- 添加代碼 Screen1View.hpp

2cb9e5c8-12c4-11ed-ba43-dac502259ad0.png

2cca3720-12c4-11ed-ba43-dac502259ad0.png

- 添加代碼 Screen1View.cpp

2ce81cd6-12c4-11ed-ba43-dac502259ad0.png

2d097e80-12c4-11ed-ba43-dac502259ad0.png

3.8 編譯運(yùn)行結(jié)果如下 :

2d2a0e5c-12c4-11ed-ba43-dac502259ad0.png

2d3d005c-12c4-11ed-ba43-dac502259ad0.png

驗(yàn)證

從以上的演示可以看到,通過TouchGFX Designer的簡(jiǎn)單配置和調(diào)用其提供的API,就可以輕松實(shí)現(xiàn)字體的動(dòng)態(tài)更新。

廠家和用戶可以根據(jù)場(chǎng)景需求靈活使用本功能。比如 ,廠家可以通過針對(duì)的不同用戶群體來提供OTA服務(wù),讓用戶動(dòng)態(tài)更新自己的字體類型。這樣由于各二進(jìn)制字體可以占用同一塊內(nèi)存區(qū)域,廠家的硬件成本也會(huì)得到降低。

具體示例實(shí)現(xiàn)過程,請(qǐng)參考示例代碼 : 《hello-tgfx4180-binary-font-v1.0-202112.7z》

THE END

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    15886

    瀏覽量

    175404
  • 二進(jìn)制
    +關(guān)注

    關(guān)注

    2

    文章

    761

    瀏覽量

    41476

原文標(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)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    電子發(fā)燒友網(wǎng)站提供《使用主機(jī)進(jìn)行TPS257x-Q1/77x-Q1固件更新.pdf》資料免費(fèi)下載
    發(fā)表于 09-03 10:26 ?0次下載
    使用主機(jī)<b class='flag-5'>進(jìn)行</b>TPS257x-Q1/77x-Q1固件<b class='flag-5'>更新</b>

    使用TensorFlow進(jìn)行神經(jīng)網(wǎng)絡(luò)模型更新

    使用TensorFlow進(jìn)行神經(jīng)網(wǎng)絡(luò)模型的更新是一個(gè)涉及多個(gè)步驟的過程,包括模型定義、訓(xùn)練、評(píng)估以及根據(jù)新數(shù)據(jù)或需求進(jìn)行模型微調(diào)(Fine-tuning)或重新訓(xùn)練。下面我將詳細(xì)闡述這個(gè)過程,并附上相應(yīng)的TensorFlow代碼
    的頭像 發(fā)表于 07-12 11:51 ?206次閱讀

    為什么直流電機(jī)無法進(jìn)行動(dòng)態(tài)制動(dòng)

    直流電機(jī)在現(xiàn)代工業(yè)、交通和日常生活中扮演著重要角色,其穩(wěn)定性和可靠性對(duì)于整個(gè)系統(tǒng)的運(yùn)行至關(guān)重要。然而,在某些情況下,直流電機(jī)可能會(huì)面臨無法進(jìn)行動(dòng)態(tài)制動(dòng)的問題。以下是對(duì)直流電機(jī)無法進(jìn)行動(dòng)態(tài)制動(dòng)的原因進(jìn)行的深入探討。
    的頭像 發(fā)表于 06-11 14:12 ?262次閱讀

    微軟將控制面板“字體”功能移至Win11設(shè)置

    微軟一直以來采用漸進(jìn)式遷移策略,將控件面板的功能分散至設(shè)置,現(xiàn)階段并無全面消除控件面板之意。Win11 的設(shè)置現(xiàn)已具備與控件面板相當(dāng)?shù)默F(xiàn)代字體管理界面,而控件面板內(nèi)的’字體‘功能仍可通過搜索功能開啟(Control Panel》Appearance and Persona
    的頭像 發(fā)表于 04-22 11:37 ?286次閱讀

    HarmonyOS開發(fā)案例:【app內(nèi)字體大小調(diào)節(jié)】

    使用基礎(chǔ)組件[Slider],通過拖動(dòng)滑塊調(diào)節(jié)應(yīng)用內(nèi)字體大小。
    的頭像 發(fā)表于 04-19 15:36 ?505次閱讀
    HarmonyOS開發(fā)案例:【app內(nèi)<b class='flag-5'>字體</b>大小調(diào)節(jié)】

    鴻蒙開發(fā)UI界面——@ohos.font (注冊(cè)自定義字體)

    字體管理中注冊(cè)自定義字體。 系統(tǒng)能力: SystemCapability.ArkUI.ArkUI.Full 參數(shù): 參數(shù)名 類型 必填 說明 options FontOptions 是 注冊(cè)的自定義
    的頭像 發(fā)表于 02-22 16:22 ?531次閱讀

    為什么直流電機(jī)無法進(jìn)行動(dòng)態(tài)制動(dòng)呢?

    為什么直流電機(jī)無法進(jìn)行動(dòng)態(tài)制動(dòng)呢? 直流電機(jī)作為一種常見的電動(dòng)機(jī)類型,廣泛應(yīng)用于工業(yè)生產(chǎn)、交通運(yùn)輸、家用電器等領(lǐng)域。但是,與交流電機(jī)相比,直流電機(jī)在動(dòng)態(tài)制動(dòng)方面存在一些限制。以下是關(guān)于直流電機(jī)無法
    的頭像 發(fā)表于 02-02 16:17 ?639次閱讀

    在SSMS如何改變網(wǎng)格字體大小

    從SQLServer2012開始,SSMS就提供了放大/縮小查詢窗口和網(wǎng)格結(jié)果窗格的選項(xiàng)。這是一個(gè)非常有用的創(chuàng)新,因?yàn)樗梢愿菀椎卦诟鞣N演示、演示和講座中向觀眾展示查詢和結(jié)果,調(diào)整字體大小以適應(yīng)大屏幕,或者只是為了讓有視力問題的人更舒適。
    的頭像 發(fā)表于 11-16 10:56 ?1513次閱讀
    在SSMS如何改變網(wǎng)格<b class='flag-5'>字體</b>大小

    STemWin怎么使用大號(hào)字體

    STemWin 怎么使用大號(hào)字體, 看代碼 GUI_SetDefaultFont 是 6x8 的字體,可是修改字體,那一堆宏,只有 6x8 有用,其他的宏都不管用。 怎么樣使用大一號(hào)的字體
    發(fā)表于 11-01 07:19

    如何使用AT32的TMR和DMA動(dòng)態(tài)更新PWM占空比

    本示例代碼基于 AT32F403A,展示了如何使用 AT32 的 TMR 和 DMA 動(dòng)態(tài)更新 PWM 占空比。該示例使用 TMR4 的更新事件觸發(fā) DMA1 搬運(yùn)數(shù)據(jù)至 TMR4 的通道 2 數(shù)據(jù)
    發(fā)表于 10-27 06:28

    求助,關(guān)于MDK字體切換問題

    MDK5.23,將C/C++的字體由系統(tǒng)默認(rèn)的Courier New切換為Consolas字體,想再切換回去的時(shí)候,發(fā)現(xiàn)Courier New字體選項(xiàng)居然不見了??百思不得其解,這難道還有什么特殊的地方??求助!!
    發(fā)表于 10-25 07:10

    HarmonyOS鴻蒙原生應(yīng)用開發(fā)設(shè)計(jì)- HarmonyOS Sans 字體

    HarmonyOS設(shè)計(jì)文檔中,為大家提供了獨(dú)特的字體,開發(fā)者可以根據(jù)需要直接引用。 開發(fā)者直接使用官方提供的字體內(nèi)容,既可以符合HarmonyOS原生應(yīng)用的開發(fā)上架運(yùn)營(yíng)規(guī)范,又可以防止使用別人的字體
    發(fā)表于 10-23 16:12

    面向泛在頻譜信息實(shí)時(shí)更新與安全傳輸?shù)?b class='flag-5'>動(dòng)態(tài)頻譜分配方法

    動(dòng)態(tài)更新的補(bǔ)充。在利用泛在部署的頻譜用戶來協(xié)助數(shù)據(jù)庫更新頻譜信息框架下,頻譜用戶需要降低非法用戶對(duì)頻譜信息偵收威脅的同時(shí)還要將自身頻譜身份和信道體驗(yàn)信息發(fā)送給頻譜管理端。因此,頻譜管理端為頻譜用戶分配
    的頭像 發(fā)表于 10-17 15:08 ?451次閱讀
    面向泛在頻譜信息實(shí)時(shí)<b class='flag-5'>更新</b>與安全傳輸?shù)?b class='flag-5'>動(dòng)態(tài)</b>頻譜分配方法

    請(qǐng)問STC8單片機(jī)做顯示陀螺如何更新顯示字體?

    STC8單片機(jī)做顯示陀螺如何更新顯示字體?
    發(fā)表于 10-17 06:33

    JLINK怎么在線對(duì)本身的固件進(jìn)行更新

    Jlink怎么在線對(duì)本身的固件進(jìn)行更新
    發(fā)表于 10-09 08:39