顯示
Display(顯示)群組包含顯示相關設定,例如介面、尺寸及緩衝處理策略。
介面與尺寸
目前有多種顯示介面可搭配使用STM32微控制器,例如:
- 平行RGB (LTDC)
- MIPI DSI
- FMC
- SPI
如果MCU帶有連接到LTDC或FMC的顯示器,TouchGFX Generator可產生程式碼,將影像緩衝區傳輸到連接的顯示器。 而對於DSI和SPI介面來說,驅動程式必須由開發人員自行實作。
Further reading
影像緩衝區像素格式
TouchGFX Generator目前支援以下影像緩衝區像素格式。 使用「客製」顯示介面時,所有選項均可用,否則選項將限制為顯示控制器設定(例如將LTDC影像緩衝區格式設定為「RGB565」,會在TouchGFX Generator將選項限制為「RGB565」)。
- BW (1bpp)
- Grey2 (2bpp)
- Grey4 (4bpp)
- ABRG2222 (8bpp)
- ARGB2222 (8bpp)
- BGRA2222 (8bpp)
- RGBA2222 (8bpp)
- RGB565 (16bpp)
- RGB888 (24bpp)
- ARGB8888 (32bpp)
- XRGB8888 (32bpp)
Note
Framebuffer Stride
For some display interfaces (e.g. MIPI-DSI) having a larger framebuffer stride than the actual width of the display can increase the data transfer rate to the display if the larger stride is better aligned with the data packet size. Use of a larger framebuffer stride can be configured as:
- No - The framebuffer stride and display width are equal in size.
- Yes - Allows the user to specify a framebuffer stride length.
緩衝處理策略及位置
下列影像緩衝區策略可透過TouchGFX Generator設定:
- Single Buffer (單一緩衝區):僅使用一個應用程式影像緩衝區。 效能可能會受限,但記憶體用量較少。 可搭配使用「Buffer Location」(緩衝區位置)設定,以將其置於內部RAM之中。 若需更進一步的最佳化,使用者可以定義一個函數來回傳顯示控制器當前正在處理的行。 架構可使用此方法,對在此畫面期間已傳輸至顯示的記憶體進行更新。
- Double Buffer (雙緩衝區):使用兩個影像緩衝區。 通常可提升效能,但記憶體用量更大。
- Partial Buffer (局部緩衝區):將一個或多個由使用者定義的記憶體區塊作為影像緩衝區。 此策略適用於不依賴外部RAM,但顯示的完整影像緩衝區可能超過可用記憶體的低成本解決方案。
對單一緩衝區與雙緩衝區來說,使用者可透過「Buffer Location」(緩衝器位置) 來設定其位置;此設定提供以下選項:
- By Allocation (依分配):允許連結器根據連結器指令碼來放置影像緩衝區記憶體。 預設為內部RAM。
- By Address (依位址):允許使用者定義一個(單)或兩個(雙)影像緩衝區位址。
局部緩衝區策略允許使用者定義以下參數:
- 區塊數量(始終放置在內部RAM中)
- 區塊大小(位元組數)
有關局部緩衝區策略的一些核心概念,請閱讀關於「使用局部影像緩衝區以降低記憶體用量」的專文。 此專文從概念上說明了如何實現局部影像緩衝區,但請留意專文中展示的程式碼會與TouchGFX Generator所產生的程式碼略有不同。 有關為這些策略而產生的具體程式碼範例,請參見影像緩衝區策略。