ili9341为什么显示出来只有8位 {MOD}的效果

2019-07-21 09:03发布

mcu:stm32f407
lcd:ili9341
驱动方式:fsmc(原子初始化代码)
问题:显示各种纯 {MOD}正常,显示图片或者图标就只有8位 {MOD}的效果,颜 {MOD}过渡的地方惨不忍睹,
2片9341都一样问题,ssd1289就正常,各种调初始化参数无果,百度了也有同样问题的但都没有解决,
if(lcddev.id==0X9341) //9341初始化
{  
LCD_WR_REG(0xCF);  
LCD_WR_DATA(0x00); 
LCD_WR_DATA(0xC1); 
LCD_WR_DATA(0X30);

LCD_WR_REG(0xED);  
LCD_WR_DATA(0x64); 
LCD_WR_DATA(0x03); 
LCD_WR_DATA(0X12); 
LCD_WR_DATA(0X81);

LCD_WR_REG(0xE8);  
LCD_WR_DATA(0x85); 
LCD_WR_DATA(0x10); //00
LCD_WR_DATA(0x7A);//78

LCD_WR_REG(0xCB);  
LCD_WR_DATA(0x39); 
LCD_WR_DATA(0x2C); 
LCD_WR_DATA(0x00); 
LCD_WR_DATA(0x34); 
LCD_WR_DATA(0x02);

LCD_WR_REG(0xF7);  
LCD_WR_DATA(0x20);

LCD_WR_REG(0xEA);  
LCD_WR_DATA(0x00); 
LCD_WR_DATA(0x00);

LCD_WR_REG(0xC0);    //Power control 
LCD_WR_DATA(0x1B);   //VRH[5:0]          10*********

LCD_WR_REG(0xC1);    //Power control         
LCD_WR_DATA(0x01);   //SAP[2:0];BT[3:0]  10************

LCD_WR_REG(0xC5);    //VCM control 
LCD_WR_DATA(0x30); //3F
LCD_WR_DATA(0x30); //3C 50

LCD_WR_REG(0xC7);    //VCM control2 
LCD_WR_DATA(0XB7);   //a4

LCD_WR_REG(0x36);    // Memory Access Control 内存访问控制
LCD_WR_DATA(0x48); //08

LCD_WR_REG(0x3A);   
LCD_WR_DATA(0x55); 

LCD_WR_REG(0xB1);   
LCD_WR_DATA(0x00);   
LCD_WR_DATA(0x1A);

LCD_WR_REG(0xB6);    // Display Function Control显示功能控制 颜 {MOD}值刚刚好相反
LCD_WR_DATA(0x0A); 
LCD_WR_DATA(0xA2); //

LCD_WR_REG(0xF2);    // 3Gamma Function Disable 3伽马函数禁用
LCD_WR_DATA(0x00);

LCD_WR_REG(0x26);    //Gamma curve selected //伽马设置
LCD_WR_DATA(0x01);   //选择伽马曲线1

LCD_WR_REG(0xE0);    //Set Gamma 正极伽马校准
LCD_WR_DATA(0x0F); 
LCD_WR_DATA(0x2A); 
LCD_WR_DATA(0x28); 
LCD_WR_DATA(0x08); 
LCD_WR_DATA(0x0E); 
LCD_WR_DATA(0x08); 
LCD_WR_DATA(0x54); 
LCD_WR_DATA(0XA9); 
LCD_WR_DATA(0x43); 
LCD_WR_DATA(0x0A); 
LCD_WR_DATA(0x0F); 
LCD_WR_DATA(0x00); 
LCD_WR_DATA(0x00); 
LCD_WR_DATA(0x00); 
LCD_WR_DATA(0x00);

LCD_WR_REG(0XE1);    //Set Gamma 负极伽马校准
LCD_WR_DATA(0x00); 
LCD_WR_DATA(0x15); 
LCD_WR_DATA(0x17); 
LCD_WR_DATA(0x07); 
LCD_WR_DATA(0x11); 
LCD_WR_DATA(0x06);
LCD_WR_DATA(0x2B); 
LCD_WR_DATA(0x56); 
LCD_WR_DATA(0x3C); 
LCD_WR_DATA(0x05); 
LCD_WR_DATA(0x10); 
LCD_WR_DATA(0x0F); 
LCD_WR_DATA(0x3F); 
LCD_WR_DATA(0x3F); 
LCD_WR_DATA(0x0F);

LCD_WR_REG(0x2B); 
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x01);
LCD_WR_DATA(0x3f);

LCD_WR_REG(0x2A); 
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0x00);
LCD_WR_DATA(0xef);  
LCD_WR_REG(0x11);  delay_ms(120); //Exit Sleep 退出睡眠模式
LCD_WR_REG(0x29); //delay_ms(10);//display on
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
ye781205
1楼-- · 2019-07-21 11:06
回复【2楼】正点原子:
---------------------------------
是你们的屏,朋友不要了送我的,但是解决了,原来是D8插针接触不良,初始化能
通过是因为只用了D0--D7的底8位,D8插针接触不良绿 {MOD}就缺位,换了排母就好了,
初始化能通过纯 {MOD}也正常所以一开始就没怀疑硬件问题,走了不少弯路,
LCD_fill(50,50,50,50, COLOR&xxxx);一位一位实验出来的。实验到COLOR&0x100 就没显示了
才知道,引以为鉴。

德国vs葡萄牙,好期待啊,买了好多德国胜,你要给力哦。
正点原子
2楼-- · 2019-07-21 16:24
是我们的屏么?
ArchiChain
3楼-- · 2019-07-21 20:55
回复【3楼】ye781205:
---------------------------------
这场1比1吧,快去补个波胆
林大鹏
4楼-- · 2019-07-21 22:47
初始化参数设置的问题,我忘记了那个参数是设置这个的了,因为我一开始也出现这个问题,后台解决了,没有记录下来,今天调屏,又出现这个问题。后来就懒得找了,直接拷贝之前的参数,你可以参考这个:我的事ITL9488的驱动:

                LCD_CMD=(0xE0);
        LCD_DATA=(0x00);
        LCD_DATA=(0x07);
        LCD_DATA=(0x10);
        LCD_DATA=(0x09);
        LCD_DATA=(0x17);
        LCD_DATA=(0x0B);
        LCD_DATA=(0x40);
        LCD_DATA=(0x8A);
        LCD_DATA=(0x4B);
        LCD_DATA=(0x0A);
        LCD_DATA=(0x0D);
        LCD_DATA=(0x0F);
        LCD_DATA=(0x15);
        LCD_DATA=(0x16);
        LCD_DATA=(0x0F);
       
        LCD_CMD=(0xE1);
        LCD_DATA=(0x00);
        LCD_DATA=(0x1A);
        LCD_DATA=(0x1B);
        LCD_DATA=(0x02);
        LCD_DATA=(0x0D);
        LCD_DATA=(0x05);
        LCD_DATA=(0x30);
        LCD_DATA=(0x35);
        LCD_DATA=(0x43);
        LCD_DATA=(0x02);
        LCD_DATA=(0x0A);
        LCD_DATA=(0x09);
        LCD_DATA=(0x32);
        LCD_DATA=(0x36);
        LCD_DATA=(0x0F);
       
        LCD_CMD=(0xB1);
        LCD_DATA=(0xA0);
       
        LCD_CMD=(0xB4);
        LCD_DATA=(0x02);
       
        LCD_CMD=(0xC0);
        LCD_DATA=(0x17);
        LCD_DATA=(0x15);
       
        LCD_CMD=(0xC1);
        LCD_DATA=(0x41);
       
        LCD_CMD=(0xC5);
        LCD_DATA=(0x00);
        LCD_DATA=(0x0A);
        LCD_DATA=(0x80);
       
        LCD_CMD=(0xB6);
        LCD_DATA=(0x02);
       
        LCD_CMD=(0x36);
        LCD_DATA=(0x48);   
       
        LCD_CMD=(0x3a);   
        LCD_DATA=(0x55);
       
        LCD_CMD=(0xE9);
        LCD_DATA=(0x00);  
       
        LCD_CMD=(0XF7);
        LCD_DATA=(0xA9);
        LCD_DATA=(0x51);
        LCD_DATA=(0x2C);
        LCD_DATA=(0x82);
       
        LCD_CMD=(0x11);
        delay_ms(120);
        LCD_CMD=(0x29);

一周热门 更多>