精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用BinaryFont進行字體動態更新

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

1、引言

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

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

2、TouchGFX Binary font 介紹

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

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

當應用程序加載了二進制字體后,可以在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 探索板,生成工程 :

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

3.3 選擇 “文本配置”,選擇 “二進制字體文件”

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

3.4 設計 Screen1 (添加 Images/TextArea/Buttons)

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

3.5 設置 Typographies :

- Typographies 設置 :

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

- Single Use 設置:

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

3.6 TouchGFX Designer 生成項目

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

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

3.7 在代碼中安裝二進制字體

在 TouchGFX 使用文本前,二進制字體必須從文件或其他存儲中復制到可直接尋址的存儲空間。當應用程序將二進制字體加載到內存時,它可以在 TouchGFX 中安裝字體,之后 TouchGFX 將使用該字體而不是編譯后的字體。

- 在FrontApplication.cpp安裝默認的二進制字體:

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

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

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

- 添加交互,當按鍵按下,切換成相應的二進制字體 :

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 編譯運行結果如下 :

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

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

驗證

從以上的演示可以看到,通過TouchGFX Designer的簡單配置和調用其提供的API,就可以輕松實現字體的動態更新。

廠家和用戶可以根據場景需求靈活使用本功能。比如 ,廠家可以通過針對的不同用戶群體來提供OTA服務,讓用戶動態更新自己的字體類型。這樣由于各二進制字體可以占用同一塊內存區域,廠家的硬件成本也會得到降低。

具體示例實現過程,請參考示例代碼 : 《hello-tgfx4180-binary-font-v1.0-202112.7z》

THE END

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    16203

    瀏覽量

    177405
  • 二進制
    +關注

    關注

    2

    文章

    794

    瀏覽量

    41600

原文標題:工程師筆記|STM32GUI_使用 TouchGFX 二進制字體(Binary Font)功能實現字體動態更新

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    智能語音報站,公交動態更新,城市形象展示…… 中心城區智能公交電子站牌亮相

    智能語音報站,公交動態更新,城市形象展示…… 中心城區智能公交電子站牌亮相
    的頭像 發表于 11-05 12:44 ?172次閱讀
    智能語音報站,公交<b class='flag-5'>動態</b><b class='flag-5'>更新</b>,城市形象展示…… 中心城區智能公交電子站牌亮相

    xbf 字體 在 串口屏中的應用有什么優勢

    XBF字體的特點 XBF(External Bitmap Font)格式是一種特殊的字體文件格式,它包含了字體信息的二進制數據塊。XBF字體的主要特點包括: 節省內存 :使用XBF
    的頭像 發表于 10-15 11:55 ?1050次閱讀

    通過I2C進行TPS65987和TPS65988 SPI閃存固件更新

    電子發燒友網站提供《通過I2C進行TPS65987和TPS65988 SPI閃存固件更新.pdf》資料免費下載
    發表于 09-29 10:31 ?0次下載
    通過I2C<b class='flag-5'>進行</b>TPS65987和TPS65988 SPI閃存固件<b class='flag-5'>更新</b>

    使用LM5177 4開關降壓/升壓控制器進行動態電流跟蹤

    電子發燒友網站提供《使用LM5177 4開關降壓/升壓控制器進行動態電流跟蹤.pdf》資料免費下載
    發表于 09-07 11:01 ?0次下載
    使用LM5177 4開關降壓/升壓控制器<b class='flag-5'>進行動態</b>電流跟蹤

    使用主機進行TPS257x-Q1/77x-Q1固件更新

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

    使用TPSM63610對USB Type-C應用進行動態輸出電壓控制

    電子發燒友網站提供《使用TPSM63610對USB Type-C應用進行動態輸出電壓控制.pdf》資料免費下載
    發表于 08-28 10:36 ?0次下載
    使用TPSM63610對USB Type-C應用<b class='flag-5'>進行動態</b>輸出電壓控制

    Allegro X 23.11 版本更新 I PCB 設計:與器件關聯的動態禁布區

    基于AllegroX23.11版本更新,我們將通過實例講解、視頻演示讓您深入了解AllegroXSystemCapture、AllegroXPCBDesigner、AllegroXPulse產品
    的頭像 發表于 08-03 08:12 ?658次閱讀
    Allegro X 23.11 版本<b class='flag-5'>更新</b> I PCB 設計:與器件關聯的<b class='flag-5'>動態</b>禁布區

    使用TensorFlow進行神經網絡模型更新

    使用TensorFlow進行神經網絡模型的更新是一個涉及多個步驟的過程,包括模型定義、訓練、評估以及根據新數據或需求進行模型微調(Fine-tuning)或重新訓練。下面我將詳細闡述這個過程,并附上相應的TensorFlow代碼
    的頭像 發表于 07-12 11:51 ?344次閱讀

    為什么直流電機無法進行動態制動

    直流電機在現代工業、交通和日常生活中扮演著重要角色,其穩定性和可靠性對于整個系統的運行至關重要。然而,在某些情況下,直流電機可能會面臨無法進行動態制動的問題。以下是對直流電機無法進行動態制動的原因進行的深入探討。
    的頭像 發表于 06-11 14:12 ?420次閱讀

    MDK5.23將C/C++的字體由系統默認的Courier New切換為Consolas字體,再切換回去Courier New字體選項不見了?

    MDK5.23,將C/C++的字體由系統默認的Courier New切換為Consolas字體,想再切換回去的時候,發現Courier New字體選項居然不見了??百思不得其解,這難道還有什么特殊的地方??求助!!
    發表于 04-23 07:09

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

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

    HarmonyOS開發案例:【app內字體大小調節】

    使用基礎組件[Slider],通過拖動滑塊調節應用內字體大小。
    的頭像 發表于 04-19 15:36 ?606次閱讀
    HarmonyOS開發案例:【app內<b class='flag-5'>字體</b>大小調節】

    請問Touchgfx Designer4.20如何配置圖片、字體不參與程序編譯?

    使用touchgfx desginer生成的 IDE工程,如何配置才能夠將圖片和字體排除掉,目前圖片、字體較多,重新編譯時特別耗費時間。 圖片、字體均存放在總線可以訪問的位置。 緩存字體
    發表于 03-15 06:41

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

    字體管理中注冊自定義字體。 系統能力: SystemCapability.ArkUI.ArkUI.Full 參數: 參數名 類型 必填 說明 options FontOptions 是 注冊的自定義
    的頭像 發表于 02-22 16:22 ?680次閱讀

    為什么直流電機無法進行動態制動呢?

    為什么直流電機無法進行動態制動呢? 直流電機作為一種常見的電動機類型,廣泛應用于工業生產、交通運輸、家用電器等領域。但是,與交流電機相比,直流電機在動態制動方面存在一些限制。以下是關于直流電機無法
    的頭像 發表于 02-02 16:17 ?726次閱讀