ILI9342驱动的液晶屏颜 {MOD}显示异常

2019-08-14 03:29发布

本帖最后由 Dennis-Zhou 于 2017-5-24 18:45 编辑

使用的液晶屏是2.2英寸横屏,分辨率320*240,驱动芯片是ILI9342。但无论如何怎么调,屏幕显示的颜 {MOD}都不正确
请各位帮我看看,是什么原因造成的。

当0x36寄存器配置为0x00:蓝 {MOD}显示为红 {MOD},绿 {MOD}显示为深绿 {MOD},红 {MOD}则无法显示(红框本来是要显示红 {MOD}的,但没有显示);
A3.jpg

当0x36寄存器配置为0x08:蓝 {MOD}显示正常,绿 {MOD}显示为深绿 {MOD},红 {MOD}则无法显示(红框本来是要显示红 {MOD}的,但没有显示);
A2.jpg


0x21和0x20寄存器都切换过,反正RGB也无法同时显示。

0x36寄存器:
A1.png



LCD的初始化程序如下:
////======================================
//        //Software Reset
//        TFT8K6204_WriteReg(0x0001);   

        //Backlight Control 2
        TFT8K6204_WriteReg(0x00B9);   
        TFT8K6204_WriteData(0x00FF);
        TFT8K6204_WriteData(0x0093);
        TFT8K6204_WriteData(0x0042);
        
        //Display Inversion ON        
        TFT8K6204_WriteReg(0x0021);   
//        //Display Inversion OFF
//        TFT8K6204_WriteReg(0x0020);   

        
        //Memory Access Control
        TFT8K6204_WriteReg(0x0036);   
        TFT8K6204_WriteData(0x0008);
//        TFT8K6204_WriteData(0x0028); //绿蓝
//        TFT8K6204_WriteData(0x0020); //红绿
//        TFT8K6204_WriteData(0x0000);

        //Pixel Format Set
        TFT8K6204_WriteReg(0x003A);   
        TFT8K6204_WriteData(0x00055);
         
        //Power Control 1
        TFT8K6204_WriteReg(0x00C0);   
        TFT8K6204_WriteData(0x0025);   
        TFT8K6204_WriteData(0x000A);   
         
        //Power Control 2
        TFT8K6204_WriteReg(0x00C1);   
        TFT8K6204_WriteData(0x0001);
        
        //VCOM Control 1
        TFT8K6204_WriteReg(0x00C5);   
        TFT8K6204_WriteData(0x002F);   
        TFT8K6204_WriteData(0x0027);   
         
        //VCOM Control 2
        TFT8K6204_WriteReg(0x00C7);
        TFT8K6204_WriteData(0x00BE);
         
        //Backlight Control 1
        TFT8K6204_WriteReg(0x00B8);   
        TFT8K6204_WriteData(0x000B);

        //Positive Gamma Correction
        TFT8K6204_WriteReg(0x00E0);   
        TFT8K6204_WriteData(0x000F);   
        TFT8K6204_WriteData(0x002A);   
        TFT8K6204_WriteData(0x0027);   
        TFT8K6204_WriteData(0x000C);   
        TFT8K6204_WriteData(0x000F);   
        TFT8K6204_WriteData(0x0007);   
        TFT8K6204_WriteData(0x0058);   
        TFT8K6204_WriteData(0x0086);   
        TFT8K6204_WriteData(0x0048);   
        TFT8K6204_WriteData(0x0009);   
        TFT8K6204_WriteData(0x0018);   
        TFT8K6204_WriteData(0x000B);   
        TFT8K6204_WriteData(0x001B);   
        TFT8K6204_WriteData(0x000E);   
        TFT8K6204_WriteData(0x0008);
        
        //Negative Gamma Correction
        TFT8K6204_WriteReg(0x00E1);   
        TFT8K6204_WriteData(0x0008);   
        TFT8K6204_WriteData(0x0017);   
        TFT8K6204_WriteData(0x001A);   
        TFT8K6204_WriteData(0x0002);   
        TFT8K6204_WriteData(0x000E);   
        TFT8K6204_WriteData(0x0003);   
        TFT8K6204_WriteData(0x0029);   
        TFT8K6204_WriteData(0x0013);   
        TFT8K6204_WriteData(0x0039);   
        TFT8K6204_WriteData(0x0001);   
        TFT8K6204_WriteData(0x0005);   
        TFT8K6204_WriteData(0x0003);   
        TFT8K6204_WriteData(0x0026);   
        TFT8K6204_WriteData(0x0033);   
        TFT8K6204_WriteData(0x000F);   

        //Display Function Control
        TFT8K6204_WriteReg(0x00B6);
        TFT8K6204_WriteData(0x0000);
        TFT8K6204_WriteData(0x0060);
        TFT8K6204_WriteData(0x0027);   
        TFT8K6204_WriteData(0x0000);   
         
        TFT8K6204_WriteReg(0x0011);        //退出睡眠状态
        delay_ms(10);
        TFT8K6204_WriteReg(0x0011);
        delay_ms(10);         
        TFT8K6204_WriteReg(0x0029);        //开启显示

////======================================




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
cromarti
1楼-- · 2019-08-15 01:14
不是顺序反了,而是16位接口按照8位的时序操作或者其他类似的情况,因为指令只用低八位所以没有问题
cromarti
2楼-- · 2019-08-15 06:12
Dennis-Zhou 发表于 2017-5-26 09:03
我也觉得有这个可能,我怀疑是数据线DB0-DB15顺序反了,但如果反了,发其它指令应该也无法响应呀,更何况屏 ...

主要是即使是时序错了也只是缺 {MOD}不会出现红蓝反向的问题……所以要么程序本身也有问题要么是屏幕问题
Dennis-Zhou
3楼-- · 2019-08-15 08:19
 精彩回答 2  元偷偷看……
cromarti
4楼-- · 2019-08-15 11:12
Dennis-Zhou 发表于 2017-5-26 11:04
屏幕绝对没问题,全新的!  而且我换了几块新屏都是一样的。  PCB板也焊了几块,也是这种情况。   你看还 ...

那应该还是程序出问题了,我看你初始化的程序里面对36h地址的操作写了好几个数据,再就是看看lcd对应的io口输出是不是正常?
Dennis-Zhou
5楼-- · 2019-08-15 11:22
cromarti 发表于 2017-5-26 11:47
那应该还是程序出问题了,我看你初始化的程序里面对36h地址的操作写了好几个数据,再就是看看lcd对应的io ...

只写了一个0x08,其它都注释了(之前也用这些值测试过,RGB也是无法正常显示)。
cromarti
6楼-- · 2019-08-15 15:46
Dennis-Zhou 发表于 2017-5-26 22:42
只写了一个0x08,其它都注释了(之前也用这些值测试过,RGB也是无法正常显示)。

手机排版的锅……还是先看看接口输出的有没有问题吧

一周热门 更多>