STM32
直播中

建立建利12

8年用户 1377经验值
擅长:可编程逻辑 嵌入式技术
私信 关注
[问答]

STM32 SPI通信ST7789V显示屏失真的原因?如何解决?

大佬们好,我想请教一个问题 在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);



回帖(1)

陈丽

2024-3-12 14:10:04
黑色区域没有失真,大概率是大小端搞反了
举报

更多回帖

发帖
×
20
完善资料,
赚取积分