1、引言
客戶需要評估 STM32U5+SPI LCD 整屏刷新時的顯示效果。一般 SPI LCD 都內(nèi)置了GRAM,在使用 TouchGFX 時都會選用部分幀緩沖以節(jié)省內(nèi)存。客戶需要整屏刷新,并盡量節(jié)省內(nèi)存,則需要使用單幀緩沖的方式。
2、問題
本文使用 STM32U575 NUCLEO 板與 X-NUCLEO-GFX01M1 板上的 SPI LCD 進行了測試。此 LCD 分辨率為 320x240,16bpp 色深,整屏傳輸時數(shù)據(jù)量為 153600 字節(jié)。而U5 的 GPDMA 一次數(shù)據(jù)傳輸要小于 64K,因此 LCD 整屏傳輸需要由多次 DMA 傳輸完成。利用 U5 的 GPDMA 鏈表模式,可將幀緩沖的數(shù)據(jù)組織到一個鏈表中,由 DMA 一次性傳輸完成即可實現(xiàn) LCD 的整屏刷新。
在實際調(diào)試中卻發(fā)現(xiàn),在準備好 GPDMA 鏈表后,調(diào)用 HAL_SPI_Transmit_DMA 函數(shù)啟動鏈表傳輸后,屏幕顯示不完整,也沒有 DMA 傳輸完成回調(diào)
3、小結(jié)
在使用 STM32U5 的 GPDMA 鏈表模式進行 SPI 通信時,需要將 SPI 的 TSIZE 配置為0,才能使鏈表的多個節(jié)點配置逐個執(zhí)行,完成所有數(shù)據(jù)的發(fā)送。