大佬们好,我想请教一个问题 在hal库,我用
STM32的spi连接了一个240×240的lcd显示屏,spi工作在仅发送模式,显示图片的时候,图像失真
失真如图
但我使用画点去绘制的时候正常
正常如图
这是发送数据的函数
void LCD_Transmit_ManyData(uint8_t *data,size_t data_size)
{
LCD_CS_Clr();
LCD_DC_Set();
// split data in small chunks because HAL can't send more than 64K at once
while (data_size > 0) {
uint16_t chunk_size = data_size > 65535 ? 65535 : data_size; #ifdef USE_DMA if (16 <= data_size) { HAL_SPI_Transmit_DMA( LCD_SPI_HANDLE, data, chunk_size); while (LCD_SPI_HANDLE.hdmatx->State != HAL_DMA_STATE_READY) {} } else HAL_SPI_Transmit( LCD_SPI_HANDLE, data, chunk_size, HAL_MAX_DELAY); #else HAL_SPI_Transmit( LCD_SPI_HANDLE, data, chunk_size, HAL_MAX_DELAY); #endif data += chunk_size; data_size -= chunk_size;}
LCD_CS_Set();}
我是这样使用的
LCD_Transmit_ManyData((uint8_t *)color_p,data_size);