TouchGFX 4.19現在可供下載。新版本包括靜態圖形功能和 TouchGFX Designer 中改進的文本管理系統,具有分組功能和處理排版設置的新方法。推動這個新版本的主旨是工作流程優化。多虧了這些新功能,創建靜態圖形只需單擊幾下,而不是一行一行的自定義代碼。同樣,新的文本管理界面將使類似資源的搜索和分組變得更加簡單。無論是加快翻譯操作還是協助為 UI 做出貢獻的作者,新功能都應該有助于節省時間并使用戶體驗更有意義。
什么是 TouchGFX?
框架
TouchGFX 是 ST 的免費使用框架,有助于在 STM32 微控制器上創建圖形用戶界面。該引擎用 C++ 編寫,利用了 ST 設備上的優化。TouchGFX 的工作假設是用戶界面由用戶導航的屏幕組成。因此,該框架是直觀的并反映了用戶體驗。它也很廣泛,因為它可以處理 2D 和 3D 對象、視頻、動畫、過渡等。此外,訪問生成的代碼的能力允許專家工程師優化他們的代碼。TouchGFX文檔通常是開發人員找到有關框架的 API 或可用開發工具之一的信息的第一個地方。
TouchGFX 設計師
TouchGFX Designer 通常是開發人員在啟動他們的 UI 時使用的第一個工具。它是一種采用所見即所得方法的設計實用程序,設計師可以在其中創建用戶將看到并與之交互的內容。開發人員可以從示例項目開始,例如時鐘、儀表或動畫圖像。還有更多成熟的演示,如骰子動畫、場景轉換或游泳池監控系統。啟動屏幕幫助選擇演示應用程序、ST 開發板,然后配置所有內容。因此,運行示例代碼和演示需要幾分鐘,這意味著更快地創建概念驗證。TouchGFX Designer 中的 UI 元素通常采用通過實用程序界面添加和配置的小部件的形式。
TouchGFX Designer 是 TouchGFX 生態系統的一個組成部分。例如,只要用戶選擇3.0模板,就可以在Designer中啟動項目,然后將其帶到STM32CubeMX,設置Discovery板或MCU,讓TouchGFX Generator(見下文)更新.IOC文件為立即應用新設置。同樣,開發人員可以從 TouchGFX Generator 開始,移至 TouchGFX Designer,然后返回 STM32CubeMX 以更改顯示分辨率。系統會自動更新 TouchGFX Designer,無需關閉應用程序。
TouchGFX 模擬器
TouchGFX Simulator 可幫助開發人員在將圖形用戶界面運行到他們的 MCU 之前對其進行模擬。它的部分吸引力在于它提供了鍵盤快捷鍵來簡化工作流程。例如,更容易拍攝各種屏幕截圖并逐幀研究動畫。同樣,按 F2 會突出顯示無效區域,即系統必須更新的幀部分。因此,開發人員可以檢查他們的動畫是否通過不必要地使資產無效來浪費 MCU 資源。
TouchGFX 發生器
能手表上協同工作
TouchGFX Generator 與STM32CubeMX一起生成 TouchGFX 抽象層 (AL) 的重要部分。我們支持幾乎所有帶顯示屏的 STM32 探索套件,新插件適用于任何配備 Cortex-M0+、M4 或 M7 的 STM32 MCU。開發人員仍然需要用他們的用戶代碼來填補一些空白并進行優化,但是這個新插件讓開始一個項目變得更加簡單。實際上,Generator 創建了空函數來指導開發人員并促進電路板初始化。ST 開發板也有現有的默認設置,以加速開發并用作示例。
TouchGFX 4.19 有什么新功能?
靜態圖
隨著可穿戴設備跟蹤環境或物理數據,用戶希望看到進展。圖表可以跟蹤心率、溫度、步行步數等。TouchGFX 開發人員首先要求提供動態圖形,因為它們很難實現,而且該功能自 TouchGFX 4.15 起就可用。現在,我們的團隊正在發布靜態圖表以適應新的應用程序。事實上,不需要不斷演變或只知道隨時間發生輕微變化的數據更適合靜態表示。新圖表的工作方式略有不同。由于時間間隔是恒定的,因此開發人員只需在動態數據點上發送一個數據點。但是,對于靜態的,程序員必須輸入 X 軸和 Y 軸的信息。
高級文本管理
文本是大多數圖形用戶界面的重要組成部分,這解釋了為什么設計師在它上面工作如此之多。他們對其進行定制、翻譯和塑造。在 TouchGFX Designers 上創建的一些應用程序可以有數千個文本資源,每個資源都被翻譯成多種語言。問題是使用文本可能很麻煩。因此,為了減少摩擦,TouchGFX 現在提供了開發人員可以根據其應用程序的部分或功能定義的組。新功能使在 TouchGFX Designer 中并排顯示翻譯文本變得更加簡單。它還有助于捆綁相關信息以檢查一致性和準確性。最后,小組可以更快地搜索和查找特定資源。
TouchGFX Designer 還包括Typographies在組內設置默認參數的選項。該部分允許用戶選擇字體規范、備用字符、通配符、對齊方式等。以前,開發人員必須覆蓋每個文本資源的參數,這可能是很多工作。多虧了組,可以同時為許多資源設置參數,從而極大地優化開發。具有自定義排版的現有項目將看到其設置移至新部分。新的文本界面還顯示一次性文本,并在必要時將其提升為資源。
TouchGFX 中已有哪些功能?
支持 X-NUCLEO-GFX01M2 和 X-NUCLEO-GFX02Z1
當工程師決定使用圖形用戶界面時,顯示器通常會成為其物料清單中最昂貴的組件。一個沒有觸摸層的簡單 2 英寸顯示屏將顯著改善用戶體驗,但它仍然比其他任何東西都更昂貴。因此,當以 5 美元或更少的 BoM 為目標時,采購價格合理的顯示器是有問題的。因此,ST 推出了顯示擴展板以幫助工程師找到具有成本效益的部件,并且我們為 TouchGFX Designer 中的硬件提供支持。用戶選擇顯示器的配置,并可以開始在與其規格相匹配的界面上工作。
工程師可以選擇的第一個擴展板是X-NUCLEO-GFX01M2。它使用支持 SPI 閃存的 SPI 2.2 英寸 QVGA (320 x 240) 顯示器,對于帶有外部閃存和兩層 PCB 的典型嵌入式系統來說,這將適合大約 5 美元的 BOM。X-NUCLEO-GFX01M2 與各種 64 針 NUCLEO 板兼容。例如,工程師可以在NUCLEO-WB55RG上使用它來幫助使藍牙應用更易于訪問。
同樣,X-NUCLEO-GFX02Z1是我們第一款支持并行接口、QSPI 閃存和 144 針 Nucleo 板的顯示擴展板。該平臺以功率更大的微控制器為目標,這解釋了與提供更高帶寬的接口的兼容性。開發人員可以將 X-NUCLEO-GFX02Z1 與首批 STM32U5 推出的NUCLEO-U575ZI-Q一起使用。因此,它使工程師能夠利用新 MCU 更好的每瓦性能比來創建前幾代 STM32 無法實現的用戶界面。
在 UI 中嵌入視頻
將視頻帶入更多 UI 的愿望是嵌入式系統顯示器日益普及的自然結果。不幸的是,在帶有微控制器的嵌入式系統上顯示視頻具有挑戰性。沒有帶有默認媒體播放器和編解碼器的操作系統。同樣,編寫顯示 YouTube 視頻的網頁也是不可能的。開發人員必須完成所有繁重的工作,例如實現視頻緩沖區、確定哪種格式最適合他們的微控制器,以及確定如何利用硬件加速(如果可用)。TouchGFX Designer 提供了一個視頻小部件來解決這一挑戰。因此,現在添加視頻只需要三個簡單的步驟。
可緩存容器
顧名思義,CacheableContainers 使用位圖緩存來加速圖形性能并啟用更高的幀速率以實現更平滑的過渡。下面的演示在STM32F429I 探索套件上運行。如果沒有 CacheableContainers,簡單的全屏 (240 × 320) 幻燈片動畫將以每秒 9 幀的速度運行。借助 TouchGFX 技術,系統達到每秒 60 幀。一些智能手表目前使用此功能來確保無縫的用戶體驗,盡管其外形尺寸固有的重大硬件限制以及需要更長的電池壽命。除了動畫之外,CacheableContainers 還可以優化復雜的小部件,例如紋理映射器或靜態背景前顯示的小型動態元素。
如果沒有 CacheableContainers,動畫必須重繪每一幀,這會導致計算量大。CacheableContainer 通過將第一幀和最后一幀以系統保存在 RAM 中的位圖形式存儲在單獨的容器中來繞過這個問題。系統不是渲染動畫,而是使用 DMA 從內存中檢索兩個圖像,并通過一個簡單的 DynamicBitmap 方法將它們顯示在不同的位置。MCU 不再生成每一幀,從而顯著優化性能。開發者只需在 TouchGFX Designer 中勾選 Cacheable 框,選擇要緩存的容器在內存中的位置,需要時調用即可。使用這種技術,渲染時間從 100 ms 下降到 5 ms。
部分幀緩沖
幀緩沖區是一個連續的內存空間,用于存儲將出現在顯示器上的每個像素的表示。例如,用于智能手表顯示屏的標準 24 位 390 x 390 圖像需要 3,650,400 位或 456.3 KB 的幀緩沖區(
),這是STM32L4+ 上可用 SRAM 的 70% 以上,在智能手表和可穿戴設備上表現出色。如果應用程序需要多個幀緩沖區,這個數字可能會激增。超出容量限制,較大的幀緩沖區需要更長的時間來獲取,因為更多的數據必須從內存傳輸到顯示器,從而降低性能。
顧名思義,Partial Framebuffer 只存儲了部分幀緩沖區,從而減少了 10 倍的內存占用。開發者可以根據屏幕的哪一部分來配置它的大小,然后再存儲多個部分緩沖區。然后框架將選擇合適的并將其發送到顯示器。該技術最適用于短動畫,例如時鐘、加載條或隨時間自行構建的圖表。它還要求屏幕使用嵌入式控制器,因為它將直接從 MCU 的 RAM 接收部分幀緩沖區,從而繞過閃存以提高性能。該技術適用于并行/8080、DSI 和 SPI 顯示器。
TouchGFX 還優化了部分幀緩沖區,為資源受限的微控制器帶來 UI。傳統上,最小的圖形界面需要大約 200 KB 的幀緩沖區。然而,當像 STM32G071 這樣的微控制器只有 36 KB 的 RAM 時,這可能是一個真正的問題。TouchGFX 通過將部分幀緩沖區優化為僅 6 KB 解決了這個問題。考慮到框架的應用程序數據,入門級 UI 只需要 16 KB 的 RAM 即可運行。TouchGFX 還使用智能部分屏幕更新。該功能補充了部分幀緩沖以優化屏幕上的更新順序。該過程節省了資源,從而允許在同一時期進行更多更新。
L8 壓縮格式
圖形資產占用大量內存空間,降低其質量意味著降級用戶界面。因此,L8 是一項基本功能,因為它可以將圖像文件壓縮高達 75% 而無需降級,這要歸功于 STM32 微控制器中的 ChromART 加速器。只要資產使用最多 256 種顏色,這在配備 STM32 MCU 的小型嵌入式系統上很常見,開發人員只需在 TouchGFX Designer 中勾選一個框,就可以選擇使用 L8 格式壓縮資產。解壓縮在計算上也很高效,因為它使用 ChromART 引擎在表格中查找顏色并在不損失質量的情況下渲染資產。
文本的 XML 文件
設計團隊經常將文本存儲在 Excel 文件中,以便與世界各地的各種翻譯人員合作。然而,與使用 Git 等版本控制系統不同,編輯人員必須手動處理更改,并確保沒有人無意中覆蓋了其他人的工作,這可能很麻煩。為了解決這個問題,TouchGFX 將所有文本存儲在一個 XML 文件中。該格式使合并操作和沖突解決變得更加簡單。TouchGFX 還包括一個 XML 到 Excel 轉換器,以適應現有的工作流程。開發人員可以導出到 Excel,然后將他們的 Excel 文件重新導入 TouchGFX 及其 XML 格式。
優化的項目文件
TouchGFX 還通過小型項目文件促進協作。它們的大小使它們更容易合并和共享。以前,項目文件以 JSON 格式存儲所有參數。問題是這樣的文件會變得非常大。因此,ST 決定僅通過存儲自定義設置來優化項目文件。因此,文件中沒有的任何內容都被視為使用默認值。因此,文件要小得多,從而使 Git 上的合并操作更加直接和快速。
一次性文本及其隨機 ID
希望使用文本的開發人員必須在 TouchGFX Designer 的文本面板中創建資源,然后在 UI 中使用文本的 ID。但是,TouchGFX 也允許“一次性文本”,它不會作為典型的文本資源出現。開發人員在測試期間或文本不重要時使用它。它可以防止用不相關的文本填滿數據庫,并幫助更快地制作原型。實際上,與常規文本資源不同,一次性文本功能會自動生成 ID 并在從 UI 中刪除資源時從數據庫中刪除。TouchGFX 還使用隨機字符串生成器來創建 ID。因此,同一項目中的兩個一次性文本 ID 幾乎不可能相同。
動畫和小部件
滑入過渡和動態圖
開發人員面臨的挑戰是利用我們不斷添加到 TouchGFX 的所有功能。因此,我們提供已使用上述功能的優化動畫。例如,雖然傳統的滑入式過渡需要整個屏幕刷新,但 TouchGFX 的擦除動畫使用的資源要少得多。同樣,動態圖小部件可以更好地顯示順序數據,而對 RAM 和微控制器的影響較小。
時鐘和紋理映射器
TouchGFX 還具有模仿應用程序的小部件,例如模擬和數字時鐘。還有一個紋理映射器,這意味著開發人員可以通過簡單的拖放來開始創建他們的映射程序。他們仍然需要輸入他們的 C++ 代碼,但這會使整個過程更加順暢。Texture Mapper 也是在資源受限的 MCU 上進行 TouchGFX 優化的一個很好的例子。只要圖形資產在 RAM 中而不是閃存中,它就可以幫助為對象設置動畫,甚至可以在STM32G0上工作。
測量
儀表模板繪制針和弧以幫助用戶監控值。開發人員還可以更改其背景、針的方向、值的范圍等。下面的演示展示了程序員如何在他們的 IDE 和 TouchGFX Designer 之間切換以獲得更流暢的工作流程。團隊可以快速檢查量表,即時調整它,并立即測試他們的代碼。例如,視頻展示了該handleTickEvent()功能如何控制儀表的行為。只需幾行代碼,開發人員就可以更改值的范圍以及指標接收更新的頻率等。這樣的優化可以在不需要不斷更新顯示值的應用中節省大量資源。
審核編輯:郭婷
-
微控制器
+關注
關注
48文章
7680瀏覽量
152356 -
mcu
+關注
關注
146文章
17399瀏覽量
353241 -
顯示器
+關注
關注
21文章
5027瀏覽量
140607
發布評論請先 登錄
相關推薦
使用瑞薩AnalogPAK SLG47001/03節省開發時間

快充電線:高效充電體驗的必備神器
DNP3設備數據 轉 CCLink IE Field Basic項目案例

iec61850設備數據 轉 CCLink IE Field Basic項目案例

opc ua設備數據 轉 CCLink IE Field Basic項目案例

人工智能在項目管理中的應用:Atlassian Intelligence六大自動化任務方法詳解,讓Jira與Confluence效率翻倍

opc da 服務器數據 轉 CCLink IE Field Basic項目案例

電力IEC104設備數據 轉 CCLink IE Field Basic項目案例

DTL698電表數據 轉 CCLink IE Field Basic協議項目案例

評論