跳轉到主要內容

顯示

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 (雙緩衝區):使用兩個影像緩衝區。 通常可提升效能,但記憶體用量更大。
  • 局部緩衝區-GRAM 顯示器-使用一個或多個使用者定義的記憶體區塊作為影像緩衝區,並傳輸到顯示器上的 GRAM。 此策略適用於不依賴外部RAM,但顯示的完整影像緩衝區可能超過可用記憶體的低成本解決方案。
  • 局部緩衝區-LTDC 驅動顯示器-使用一部分顯示尺寸的單一記憶體區塊 (以 2 的次方為分母的分數),例如 1/2、1/4 或 1/8。 此策略針對沒有外部 RAM 及/或大顯示解析度的平台。 此策略需要 LTDC 驅動的顯示器和 GFXMMU。

如果是單一緩衝區雙重緩衝區局部緩衝區-LTDC 驅動顯示器,使用者可以透過「緩衝區位置」設定來設定其位置,該設定提供以下選項:

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

局部緩衝區-GRAM 顯示器策略之下,使用者可定義以下參數:

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

局部緩衝區-LTDC 驅動顯示器策略之下,使用者可定義以下參數:

  • 局部區塊的數量 (預設值為 4,即影像緩衝區塊為顯示器大小的 1/4)

如欲瞭解有關影像緩衝區策略的核心概念,請參閱「影像緩衝區策略」一文。

以下幾個情境透過具體範例,說明如何開始使用不同的顯示器介面和影像緩衝區策略: