[mw_shl_code=c,true]
未用FSMC,直接驱动。屏幕只是白屏,不显示内容,无任何反应。
可以读到芯片id,划线画点之后也能读出相应点位的颜色数据。但是就是不能显示。一直是背光亮,白屏无任何反应的状态。
该如何确定是驱动的问题还是LCD模块的硬件故障呢。
下面是初始化代码。GPIO的配置在其它函数里完成的。
void LCD_Init(void)
{
//***************************RESET LCD Driver******************************
LCD_RESET_SET; //reset-->1
delay_ms(1); //Delay 1ms
LCD_RESET_CLR; //reset-->0
delay_ms(10); //Delay 10ms
LCD_RESET_SET; //reset-->1
delay_ms(120); //Delay 200ms
LCD_WR_REG(0xCF); //功耗控制B
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x81); //power控制
LCD_WR_DATA(0X30);
LCD_WR_REG(0xED); //电源序列控制
LCD_WR_DATA(0x64); //软启动控制
LCD_WR_DATA(0x03); //电源序列控制
LCD_WR_DATA(0X12); //电源序列控制
LCD_WR_DATA(0X81); //DDVDH增强模式
LCD_WR_REG(0xE8); //驱动时序控制A
LCD_WR_DATA(0x85); //栅极驱动器的非重叠时序控制
LCD_WR_DATA(0x00); //EQ时序控制****10
LCD_WR_DATA(0x79); //预充电时间控制****7A
LCD_WR_REG(0xCB); //功耗控制A
LCD_WR_DATA(0x39);
LCD_WR_DATA(0x2C);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x34); //内核电压控制
LCD_WR_DATA(0x02); //DDVDH控制
LCD_WR_REG(0xF7); //泵比控制
LCD_WR_DATA(0x20); //比率控制
LCD_WR_REG(0xEA); //驱动时序控制B
LCD_WR_DATA(0x00); //栅极驱动时序控制
LCD_WR_DATA(0x00);
LCD_WR_REG(0xC0); //功耗控制1
LCD_WR_DATA(0x2E); //VRH[5:0] //设置GVDD电平
LCD_WR_REG(0xC1); //Power control //功耗控制2
LCD_WR_DATA(0x12); //SAP[2:0];BT[3:0] //设置用于升压电路的因子
LCD_WR_REG(0xC5); //VCM control //VCOM控制1
LCD_WR_DATA(0x50); //3F //设置VCOMH电压 ******30
LCD_WR_DATA(0x19); //3C //设置VCOML电压 *****30
LCD_WR_REG(0xC7); //VCM control2 //VCOM控制2
LCD_WR_DATA(0x90); //设置VCOM偏移电压*******B7
LCD_WR_REG(0x36); // Memory Access Control //存储器访问控制
LCD_WR_DATA(0xA8); //该指令定义帧存储器的读写扫描方向*********48
LCD_WR_REG(0x3A); //Pixel Format Set
LCD_WR_DATA(0x55); //16bit/Pixel
LCD_WR_REG(0xB1); //(正常模式/全色模式下)帧率控制
LCD_WR_DATA(0x00); //内部时钟分频设置,00时表示不分频
LCD_WR_DATA(0x14); //RNTA设置,用于设置1H(行)的时间
LCD_WR_REG(0xB6); // Display Function Control //显示功能设置
LCD_WR_DATA(0x0A); //设置显示区域扫描格式,0A表示间隔扫描
LCD_WR_DATA(0xA2); //设置源极、栅极驱动器的移动方向和扫描周期****A2
LCD_WR_REG(0xF2); // 3Gamma Function Disable //使能3G
LCD_WR_DATA(0x00); //01使能,00不使能
LCD_WR_REG(0xF6);
LCD_WR_DATA(0x01);
LCD_WR_DATA(0x30);
LCD_WR_REG(0x26); //Gamma curve selected //Gamma设置
LCD_WR_DATA(0x01); //选择Gamma1
LCD_WR_REG(0xE0); //Set Gamma //正极Gamma校准
LCD_WR_DATA(0x0F);
LCD_WR_DATA(0x26);
LCD_WR_DATA(0x24);
LCD_WR_DATA(0x0B);
LCD_WR_DATA(0x0E);
LCD_WR_DATA(0x09);
LCD_WR_DATA(0x54);
LCD_WR_DATA(0XA8);
LCD_WR_DATA(0x46);
LCD_WR_DATA(0x0C);
LCD_WR_DATA(0x17);
LCD_WR_DATA(0x09);
LCD_WR_DATA(0x0F);
LCD_WR_DATA(0x07);
LCD_WR_DATA(0x00);
LCD_WR_REG(0XE1); //Set Gamma //负极Gamma校准
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x19);
LCD_WR_DATA(0x1B);
LCD_WR_DATA(0x04);
LCD_WR_DATA(0x10);
LCD_WR_DATA(0x07);
LCD_WR_DATA(0x2A);
LCD_WR_DATA(0x47);
LCD_WR_DATA(0x39);
LCD_WR_DATA(0x03);
LCD_WR_DATA(0x06);
LCD_WR_DATA(0x06);
LCD_WR_DATA(0x30);
LCD_WR_DATA(0x38);
LCD_WR_DATA(0x0F);
LCD_WR_REG(0x2B); //set the page address //横屏设置
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0xEF);
LCD_WR_REG(0x2A); //set the column address
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x01);
LCD_WR_DATA(0x3F);
LCD_WR_REG(0x11); //Exit Sleep//退出睡眠模式
delay_ms(200);
LCD_WR_REG(0x29); //display on //开显示
delay_ms(10);
}[/mw_shl_code]
|