初级会员

- 积分
- 64
- 金钱
- 64
- 注册时间
- 2022-3-18
- 在线时间
- 13 小时
|
1金钱
st芯片驱动9431液晶屏,屏幕有黑点,有没有知道原因的高手
屏幕上画红圈的黑点,分布很没有规律,上电后出现,而且全屏刷新,也去不掉,怀疑是初始化的时候,出的问题,有没有高手给解答一下
void LCD_Init(void)
{
LCD_RESET = 1;
delay_ms(100);
LCD_RESET = 0;
delay_ms(100);
LCD_RESET = 1;
delay_ms(100);
//************* Start Initial Sequence **********//
LCD_WR_REG(0x11); //Sleep out
delay_ms(120); //Delay 120ms
//************* Start Initial Sequence **********//
/* 功耗控制B */
LCD_WR_REG(0xCF);
LCD_WR_DATA8(0x00);
LCD_WR_DATA8(0xC1);
LCD_WR_DATA8(0X30);
/* 电源时序控制 */
LCD_WR_REG(0xED);
LCD_WR_DATA8(0x64);
LCD_WR_DATA8(0x03);
LCD_WR_DATA8(0X12);
LCD_WR_DATA8(0X81);
/* 驱动时序控制A */
LCD_WR_REG(0xE8);
LCD_WR_DATA8(0x85);
LCD_WR_DATA8(0x00);
LCD_WR_DATA8(0x79);
/* 功耗控制A */
LCD_WR_REG(0xCB);
LCD_WR_DATA8(0x39);
LCD_WR_DATA8(0x2C);
LCD_WR_DATA8(0x00);
LCD_WR_DATA8(0x34);
LCD_WR_DATA8(0x02);
/* 泵比控制 */
LCD_WR_REG(0xF7);
LCD_WR_DATA8(0x20);
/* 驱动时序控制B */
LCD_WR_REG(0xEA);
LCD_WR_DATA8(0x00);
LCD_WR_DATA8(0x00);
/* 帧速率控制(正常模式/全色模式) */
LCD_WR_REG(0xC0); //Power control
// LCD_WR_DATA8(0x1D); //VRH[5:0]
LCD_WR_DATA8(0x1b); //VRH[5:0]
/*功耗控制2*/
LCD_WR_REG(0xC1); //Power control
//设置最佳的工作电压的升压因子,为了降低功耗,设置一个较小的因子
//应该是0x01,不应该是0x11,此处貌似参考的野火的例程写的有问题
// LCD_WR_DATA8(0x12); //SAP[2:0];BT[3:0]
LCD_WR_DATA8(0x01); //SAP[2:0];BT[3:0]
LCD_WR_REG(0xC5); //VCM control
LCD_WR_DATA8(0x33);
LCD_WR_DATA8(0x3F);
/*VCOM控制2*/
LCD_WR_REG(0xC7); //VCM control
LCD_WR_DATA8(0x92);
LCD_WR_REG(0x3A); // Memory Access Control
LCD_WR_DATA8(0x55);
LCD_WR_REG(0x36); // Memory Access Control
if(USE_HORIZONTAL==0)LCD_WR_DATA8(0x08);
else if(USE_HORIZONTAL==1)LCD_WR_DATA8(0xC8);
else if(USE_HORIZONTAL==2)LCD_WR_DATA8(0x78);
else LCD_WR_DATA8(0xA8);
/* 帧速率控制(正常模式/全色模式) */
LCD_WR_REG(0xB1);
LCD_WR_DATA8(0x00);
// LCD_WR_DATA8(0x12);
LCD_WR_DATA8(0x1a);
/*显示功能设置控制*/
LCD_WR_REG(0xB6); // Display Function Control
LCD_WR_DATA8(0x0A);
LCD_WR_DATA8(0xA2);
LCD_WR_REG(0x44);
LCD_WR_DATA8(0x02);
/*使能3G*/
LCD_WR_REG(0xF2); // 3Gamma Function Disable
LCD_WR_DATA8(0x00);
/*伽马设置*/
LCD_WR_REG(0x26); //Gamma curve selected
LCD_WR_DATA8(0x01);
/*正极伽马校正*/
LCD_WR_REG(0xE0); //Set Gamma
LCD_WR_DATA8(0x0F);
LCD_WR_DATA8(0x2A);
LCD_WR_DATA8(0x28);
LCD_WR_DATA8(0x08);
LCD_WR_DATA8(0x0E);
LCD_WR_DATA8(0x08);
LCD_WR_DATA8(0x54);
LCD_WR_DATA8(0XA9);
LCD_WR_DATA8(0x43);
LCD_WR_DATA8(0x0A);
LCD_WR_DATA8(0x0F);
LCD_WR_DATA8(0x00);
LCD_WR_DATA8(0x00);
LCD_WR_DATA8(0x00);
LCD_WR_DATA8(0x00);
// LCD_WR_DATA8(0x0F);
// LCD_WR_DATA8(0x22);
// LCD_WR_DATA8(0x1C);
// LCD_WR_DATA8(0x1B);
// LCD_WR_DATA8(0x08);
// LCD_WR_DATA8(0x0F);
// LCD_WR_DATA8(0x48);
// LCD_WR_DATA8(0xB8);
// LCD_WR_DATA8(0x34);
// LCD_WR_DATA8(0x05);
// LCD_WR_DATA8(0x0C);
// LCD_WR_DATA8(0x09);
// LCD_WR_DATA8(0x0F);
// LCD_WR_DATA8(0x07);
// LCD_WR_DATA8(0x00);
/*负极伽马校正*/
LCD_WR_REG(0XE1); //Set Gamma
LCD_WR_DATA8(0x00);
LCD_WR_DATA8(0x15);
LCD_WR_DATA8(0x17);
LCD_WR_DATA8(0x07);
LCD_WR_DATA8(0x11);
LCD_WR_DATA8(0x06);
LCD_WR_DATA8(0x2B);
LCD_WR_DATA8(0x56);
LCD_WR_DATA8(0x3C);
LCD_WR_DATA8(0x05);
LCD_WR_DATA8(0x10);
LCD_WR_DATA8(0x0F);
LCD_WR_DATA8(0x3F);
LCD_WR_DATA8(0x3F);
LCD_WR_DATA8(0x0F);
// LCD_WR_DATA8(0x00);
// LCD_WR_DATA8(0x23);
// LCD_WR_DATA8(0x24);
// LCD_WR_DATA8(0x07);
// LCD_WR_DATA8(0x10);
// LCD_WR_DATA8(0x07);
// LCD_WR_DATA8(0x38);
// LCD_WR_DATA8(0x47);
// LCD_WR_DATA8(0x4B);
// LCD_WR_DATA8(0x0A);
// LCD_WR_DATA8(0x13);
// LCD_WR_DATA8(0x06);
// LCD_WR_DATA8(0x30);
// LCD_WR_DATA8(0x38);
// LCD_WR_DATA8(0x0F);
/*行地址设置*/
LCD_WR_REG(0x2B);
LCD_WR_DATA8(0x00);
LCD_WR_DATA8(0x00);
LCD_WR_DATA8(0x01);
LCD_WR_DATA8(0x3f);
/*列地址设置*/
LCD_WR_REG(0x2A);
LCD_WR_DATA8(0x00);
LCD_WR_DATA8(0x00);
LCD_WR_DATA8(0x00);
LCD_WR_DATA8(0xef);
LCD_WR_REG(0x29); //Display on
LCD_Clear(GREEN);
// WDT_Restart();
// LCD_Fill( 0, 0, 320, 240, GREEN);
}
|
-
-
|