用STM32F030驱动1.45寸TFT-LCD,左上角刚上电小几率出现一小块花屏

2019-07-14 18:29发布

本帖最后由 bojue2015 于 2018-2-25 11:05 编辑

STM32F030驱动TFT-LCD(TFT-LCD初始化总时间不到15MS),驱动芯片ST7789V,左上角刚上电小几率出现一小块花屏!   刷屏流程为:上电--屏供电--初始化(总延时不到20MS,不能再长)--整体刷黑底---需要的位置上刷图片。
   左上角有小几率出现小块花屏,之后如果需要切换显示的话,会再刷黑底,花屏消失。之后坏样机再重新上电也难以复现此现象。
   最新的优化方法是上电的初次刷两次黑底,能有效改善此问题,但几率性还是存在。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
13条回答
hhdzkj09
2019-07-15 16:05
//写命令函数
static void WriteComm(Uint8 command)
{
        Uint8 i;
        //__set_PRIMASK(1);
       
        GPIOA->BRR = Pin_SPI_CS;
        //DISP_SPI_CS_LOW;
        GPIOB->BRR = Pin_SPI_DC;       
        //DISP_SPI_DC_LOW;
        //while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
        while(!(SPI1->SR & SPI_I2S_FLAG_TXE));
        for(i=0;i<2;i++);
       
        //SPI_SendData8(SPI1, command);
        *((__IO uint8_t *)SPI1+0x0c) = command;
        //while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
        while(!(SPI1->SR & SPI_I2S_FLAG_TXE));
        for(i=0;i<2;i++);
        //DISP_SPI_CS_HIGH;
        GPIOA->BSRR = Pin_SPI_CS;
       
        //__set_PRIMASK(0);
}

一周热门 更多>