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