跳轉到主要內容

顯示

Display(顯示)群組包含顯示相關設定,例如介面、尺寸及緩衝處理策略。

TouchGFX Generator顯示設定

介面與尺寸

目前有多種顯示介面可搭配使用STM32微控制器,例如:

  • 平行RGB (LTDC)
  • MIPI DSI
  • FMC
  • SPI

如果MCU帶有連接到LTDC或FMC的顯示器,TouchGFX Generator可產生程式碼,將影像緩衝區傳輸到連接的顯示器。 而對於DSI和SPI介面來說,驅動程式必須由開發人員自行實作。

Further reading
有關不同顯示介面的程式碼具體範例請參閱使用情境章節。

影像緩衝區像素格式

TouchGFX Generator目前支援以下影像緩衝區像素格式。 使用「客製」顯示介面時,所有選項均可用,否則選項將限制為顯示控制器設定(例如將LTDC影像緩衝區格式設定為「RGB565」,會在TouchGFX Generator將選項限制為「RGB565」)。

  1. BW (1bpp)
  2. Grey2 (2bpp)
  3. Grey4 (4bpp)
  4. ABRG2222 (8bpp)
  5. ARGB2222 (8bpp)
  6. BGRA2222 (8bpp)
  7. RGBA2222 (8bpp)
  8. RGB565 (16bpp)
  9. RGB888 (24bpp)
  10. ARGB8888 (32bpp)
  11. XRGB8888 (32bpp)
Note
部分像素格式沒有或僅有部分ChromART (DMA2D)支援。

影像緩衝區跨距

對於部分擁有較大影像緩衝區跨距的顯示介面(如MIPI-DSI),且其跨距大於顯示的實際寬度,若大型跨距與資料封包大小更相符,則可提高到顯示的資料傳輸率。 使用較大的影像緩衝區跨距可設定如下:

  • - 影像緩衝區跨距和顯示寬度的大小相同。
  • - 允許使用者指定影像緩衝區跨距長度。

緩衝處理策略及位置

下列影像緩衝區策略可透過TouchGFX Generator設定:

  • Single Buffer (單一緩衝區):僅使用一個應用程式影像緩衝區。 效能可能會受限,但記憶體用量較少。 可搭配使用「Buffer Location」(緩衝區位置)設定,以將其置於內部RAM之中。 若需更進一步的最佳化,使用者可以定義一個函數來回傳顯示控制器當前正在處理的行。 架構可使用此方法,對在此畫面期間已傳輸至顯示的記憶體進行更新。
  • Double Buffer (雙緩衝區):使用兩個影像緩衝區。 通常可提升效能,但記憶體用量更大。
  • Partial Buffer (局部緩衝區):將一個或多個由使用者定義的記憶體區塊作為影像緩衝區。 此策略適用於不依賴外部RAM,但顯示的完整影像緩衝區可能超過可用記憶體的低成本解決方案。

對單一緩衝區與雙緩衝區來說,使用者可透過「Buffer Location」(緩衝器位置) 來設定其位置;此設定提供以下選項:

  • By Allocation (依分配):允許連結器根據連結器指令碼來放置影像緩衝區記憶體。 預設為內部RAM。
  • By Address (依位址):允許使用者定義一個(單)或兩個(雙)影像緩衝區位址。

局部緩衝區策略允許使用者定義以下參數:

  • 區塊數量(始終放置在內部RAM中)
  • 區塊大小(位元組數)

有關局部緩衝區策略的一些核心概念,請閱讀關於「使用局部影像緩衝區以降低記憶體用量」的專文。 此專文從概念上說明了如何實現局部影像緩衝區,但請留意專文中展示的程式碼會與TouchGFX Generator所產生的程式碼略有不同。 有關為這些策略而產生的具體程式碼範例,請參見影像緩衝區策略

Caution
對於STM32F7/H7:如果影像緩衝區放置在直接寫入式快取記憶體(例如SRAM)中,那麼DCache會在DMA2D(如果已在Generator中設定)存取前由產生的程式碼清空。 記住要在STM32CubeMX中的Cortex M7系統核心設定中啟用CPU快取,這樣快取機制才能正常運作。
Further reading
如需關於CPU快取的詳細資訊,請參閱在F7和H7進行快取子節。