本人在使用TFT屏幕时,在长时间的刷屏过程中发现在特定情况下,屏幕出现本刷全黑却部分阴影的现象。(主控为ST7735)
原显示内容是这样的:
阴影现象如下:
以下为总结及改进方法:
TFT屏:常规使用分辨率:128*128 156*156 240*240 320*320等等 RGB七彩
现象:刷新屏幕时,出现阴影(即如刷新全屏黑色时,发现有一块显示有阴影,因为部分可能为你显示图像中的任何一处)
注意:(个人长时间老化发现现象)
解决方法及原因:
gamma射线校准,不同的屏幕因为材质,屏幕的透光度,导致屏幕的gamma射线校准的参数不同
以下是最常规的参数:主要是0XE0和0XE1的参数设置
SPI_Write_Commnd(0xE0); //Set Gamma
SPI_Write_DataData(0x0F);
SPI_Write_DataData(0x2A);
SPI_Write_DataData(0x28);
SPI_Write_DataData(0x08);
SPI_Write_DataData(0x0E);
SPI_Write_DataData(0x08);
SPI_Write_DataData(0x54);
SPI_Write_DataData(0XA9);
SPI_Write_DataData(0x43);
SPI_Write_DataData(0x0A);
SPI_Write_DataData(0x0F);
SPI_Write_DataData(0x00);
SPI_Write_DataData(0x00);
SPI_Write_DataData(0x00);
SPI_Write_DataData(0x00);
SPI_Write_Commnd(0XE1); //Set Gamma
SPI_Write_DataData(0x00);
SPI_Write_DataData(0x15);
SPI_Write_DataData(0x17);
SPI_Write_DataData(0x07);
SPI_Write_DataData(0x11);
SPI_Write_DataData(0x06);
SPI_Write_DataData(0x2B);
SPI_Write_DataData(0x56);
SPI_Write_DataData(0x3C);
SPI_Write_DataData(0x05);
SPI_Write_DataData(0x10);
SPI_Write_DataData(0x0F);
SPI_Write_DataData(0x3F);
SPI_Write_DataData(0x3F);
SPI_Write_DataData(0x0F);
提出供应公司(xxxxx,此处不方便说明)所提供屏幕非常规屏幕,设置参数如下:(也是从此发现屏幕设置参数的细微化)
SPI_Write_Commnd(0xE0); //Set Gamma
SPI_Write_DataData(0x70);
SPI_Write_DataData(0x04);
SPI_Write_DataData(0x08);
SPI_Write_DataData(0x09);
SPI_Write_DataData(0x09);
SPI_Write_DataData(0x05);
SPI_Write_DataData(0x2A);
SPI_Write_DataData(0X33);
SPI_Write_DataData(0x41);
SPI_Write_DataData(0x07);
SPI_Write_DataData(0x13);
SPI_Write_DataData(0x13);
SPI_Write_DataData(0x29);
SPI_Write_DataData(0x2F);
//SPI_Write_DataData(0x00);
SPI_Write_Commnd(0XE1); //Set Gamma
SPI_Write_DataData(0x70);
SPI_Write_DataData(0x03);
SPI_Write_DataData(0x09);
SPI_Write_DataData(0x0A);
SPI_Write_DataData(0x09);
SPI_Write_DataData(0x06);
SPI_Write_DataData(0x2B);
SPI_Write_DataData(0x34);
SPI_Write_DataData(0x41);
SPI_Write_DataData(0x07);
SPI_Write_DataData(0x12);
SPI_Write_DataData(0x14);
SPI_Write_DataData(0x28);
SPI_Write_DataData(0x2E);
//SPI_Write_DataData(0x0F);
若仍不能解决,尝试更改地址0XC1 0XC2 0XC3 0XC4中数据,更改偏置电阻,设定VDD电压等。
其他注意:在有时间有可能的情况下,看一下配置寄存器,即LCD_Init中的配置地址,
如:扫描方向,RGB配比,0X36 0X3A