• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

Alientek TFTLCD驱显问题

zhjb1 2018-04-17 浏览量:1950

问题如题。在本网站申请了一块2.8寸TFTLCD,驱显遇到问题,无论如何设置240X320屏幕只能刷新240x240,下边的80像素不能驱显。下边是ILI9341LCD驱动芯片的初始化代码[所有能写芯片的代码]和结果照片。开发板为STM32F412ZG-NUCLEO,开发软件为IAR7.3,工程为ARMMbed;开发板的PD_0~PD_15作为LCD数据线,采用RGB565模式,PE_10,PE_12~PE_15作为芯片控制信号线。先谢谢了

21_刷显屏幕,只有240X240刷到.jpg//ILI9341 2.8 inch TFT LCD Initial 240X320dots
void lcdInit(void){
 res=0;
 wait(0.1);
 res=1;
 wait(0.1);
 b2l(0x01,0);
 wait(0.1);
 b2l(0x11,0);//Exit Sleep
 b2l(0x28,0);//Dsplay Off
 //b2l(0xCF,0);b2l(0x00,1);b2l(0xC1,1);b2l(0X30,1);//Power control B-3para=00A2F0
 //b2l(0xED,0);b2l(0x64,1);b2l(0x03,1);b2l(0X12,1);b2l(0X81,1);//Power on sequence control-4Para=55012301
 //b2l(0xE8,0);b2l(0x84,1);b2l(0x11,1);b2l(0x7A,1);//Driver timing control A-3para=84117A-85107A
 //b2l(0xCB,0);b2l(0x39,1);b2l(0x2C,1);b2l(0x00,1);b2l(0x34,1);b2l(0x02,1);//Power control A-5para=392C003402
 //b2l(0xF7,0);b2l(0x20,1);//
 //b2l(0xEA,0);b2l(0x66,1);b2l(0x00,1);//Driver timing control B-2para=6600
 b2l(0xC0,0);b2l(0x27,1);//Power control//00 VRH[5:0]=21
 b2l(0xC1,0);b2l(0x10,1);//Power control//SAP[2:0];BT[3:0]=10
 //b2l(0xC5,0);b2l(0x3F,1);b2l(0x3C,1);//VCM control//3F//3C
 //b2l(0xC7,0);b2l(0XB7,1);//nVM VMF[6:0]-VCM control2=C0
 b2l(0xE7,0);b2l(0X04,1);//00000 GON DTE GAS-Entry Mode Set=06
 b2l(0x36,0);b2l(0x80,1);//MY MX MV ML BGR 00-MHMemory Access Control=00
 b2l(0x3A,0);b2l(0x55,1);//COLMOD: Pixel Format Set=55
 b2l(0xB1,0);b2l(0x1B,1);b2l(0x1B,1);//Frame Rate Control(In Normal Mode/Full Colors)=001B
 b2l(0xB6,0);b2l(0x0A,1);b2l(0x82,1);b2l(0x27,1);//Display Function Control=0A8227xx
 //b2l(0x20,0);//Display Inversion OFF
 //b2l(0x21,0);//Display Inversion ON
 //b2l(0x2D,0);//Color Set-9 para
 //b2l(0x30,0);b2l(0x00,1);b2l(0x00,1);b2l(0x01,1);b2l(0x3F,1);//Partial Area -8 para
 //b2l(0x33,0);b2l(0xTFA,1);b2l(0xTFA,1);b2l(0xVSA,1);b2l(0xVSA,1);b2l(0xBFA,1);b2l(0xBFA,1);//Vertical Scrolling Definition
 //b2l(0x34,0);//Tearing Effect Line OFF
 //b2l(0x35,0);//Tearing Effect Line ON
 //b2l(0x37,0);b2l(0xVSP,1);b2l(0xVSP,1);//Vertical Scrolling Start Address
 //b2l(0x38,0);//Idle Mode OFF
 //b2l(0x39,0);//Idle Mode ON
 //b2l(0x3C,0);w2l(0x03FF,1);w2l(0x03FF,1);w2l(0x03FF,1);//Write_Memory_Continue-3para
 //b2l(0x44,0);b2l(0x01,1);b2l(0xFF,1);//Set_Tear_Scanline-2para
 //b2l(0x45,0);b2l(0x00,1);b2l(0x01,1);b2l(0xFF,1);//Get_Scanline-3para
 b2l(0x51,0);b2l(0x00,1);//Write Display Brightness-1para
 b2l(0x53,0);b2l(0x00,1);//00 BCTRL 0 DD BL 00 Write CTRL Display
 b2l(0x55,0);b2l(0x03,1);//000000 C[1] C[0] Write Content Adaptive Brightness Control
 b2l(0x5E,0);b2l(0x0F,1);//Write CABC Minimum Brightness
 b2l(0xB0,0);b2l(0x1A,1);//ByPass_MODE RCM[1] RCM[0]0 VSPL HSPL DPL-EPLRGB Interface Signal Control=40
 b2l(0xB1,0);b2l(0x00,1);b2l(0x14,1);//0x14//Frame Rate Control(In Normal Mode/Full Colors)=001B
 b2l(0xB2,0);b2l(0x00,1);b2l(0x14,1);//0x14//Frame Rate Control(In Idle Mode/8 colors)=001B
 b2l(0xB3,0);b2l(0x00,1);b2l(0x1B,1);//Frame Rate control (In Partial Mode/Full Colors)=001B
 b2l(0xB4,0);b2l(0x00,1);//Display Inversion Control=02
 b2l(0xB5,0);b2l(0x7F,1);b2l(0x7F,1);b2l(0x1F,1);b2l(0x1F,1);//Blanking Porch Control=02020A14
 //b2l(0xB8,0);b2l(0xCC,1);//Backlight Control 2=CC
 //b2l(0xB9,0);b2l(0x04,1);//Backlight Control 3=04
 //b2l(0xBA,0);b2l(0x65,1);//Backlight Control 4=65
 //b2l(0xBC,0);b2l(0x44,1);//Backlight Control 5=44
 //b2l(0xBE,0);b2l(0x0F,1);//Backlight Control 7=0F
 //b2l(0xBF,0);b2l(0x00,1);//Backlight Control 8=00
 //b2l(0xF2,0);b2l(0x00,1);//3Gamma Function Disable
 b2l(0x26,0);//Gamma curve selected b2l(0x01,1);
 b2l(0xE0,0);//Set Gamma-15 para
 b2l(0x0F,1);b2l(0x2A,1);b2l(0x28,1);b2l(0x08,1);b2l(0x0E,1);
 b2l(0x08,1);b2l(0x54,1);b2l(0XA9,1);b2l(0x43,1);b2l(0x0A,1);
 b2l(0x0F,1);b2l(0x00,1);b2l(0x00,1);b2l(0x00,1);b2l(0x00,1);
 b2l(0XE1,0);//Set Gamma-15 para
 b2l(0x00,1);b2l(0x15,1);b2l(0x17,1);b2l(0x07,1);b2l(0x11,1);
 b2l(0x06,1);b2l(0x2B,1);b2l(0x56,1);b2l(0x3C,1);b2l(0x05,1);
 b2l(0x10,1);b2l(0x0F,1);b2l(0x3F,1);b2l(0x3F,1);b2l(0x0F,1);
 //b2l(0xE2,0);b2l(0xFF,1);b2l(0xFF,1);b2l(0xFF,1);//Digital Gamma Control 1-3para
 //b2l(0xE3,0);b2l(0xFF,1);b2l(0xFF,1);b2l(0xFF,1);//Digital Gamma Control 2-3para
 b2l(0x2A,0);b2l(0x00,1);b2l(0x00,1);b2l(0x00,1);b2l(0xEF,1);//Page Address Set
 b2l(0x2B,0);b2l(0x00,1);b2l(0x00,1);b2l(0x01,1);b2l(0x3F,1);//Column Address Set
 b2l(0xF6,0);b2l(0x01,1);b2l(0x00,1);b2l(0x00,1);//Interface Control-3para=010000
 //b2l(0x0B,0);b2l(0x00,1);b2l(0x20,1);//
 //b2l(0x12,0);//Partial Mode ON
 b2l(0x13,0);//Normal Display Mode ON
 b2l(0x29,0);//display on
}

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答 数量:13
  • 原子哥探索者了解一下   基本上拿来就可以用了   因为你的屏幕就是原子哥那里的...

  • 我觉得吧,你会不会是初始化的时候横屏、竖屏模式设置反了。

    我之前没注意横屏竖屏弄反了也是这种情况

  • 看看寄存器吧,老铁,如果你确定你X和Y设置的没问题,看看寄存器默认是横屏还是竖屏模式。

  • 直接用别人代码 就这不好,出问题不好定位,所以建议你先整理自己实际接线的情况,理清程序中设置那些不同,就能找到原因了

  • 感觉上是你的接线方式不对,可能弄对调了x和y

  • 谢谢各位,先解释一下:1. 手头没有原子的板子;2. 驱动没有问题,除了少那底部的,其它驱显完全正常;3. 接线上应该没有问题,仔细对过,所采用的数据线线序完全正确,信号线也没有被占用的。

    实际上,我完全采用过原子案例中提供的初始化代码,结果一样,才参照手册将所有能写到LCD寄存器的命令都罗列测试,结果照旧,还是只能显示240x240的上半边,底下的无法驱显刷色。

    刷屏是逐点改色,全部改完是320X240,16位的GRAM[RGB=565],这个应该不会错的。我还在尽力测试中。再次表示感谢。

  • 谢谢!手册上就是我在语句后边的注释拷贝过来的,应该屏幕横竖没有错——就响原子照片那样是竖着放置的。如果我讲寄存器2A,2B,反过来设置,按照手册多余的部分将被忽略掉,结果还是只有上边那240X240可以刷显。谢谢

  • 你的芯片是不是只能支持最大240*240的屏幕分辨率

  • 谢谢!LCD本身的芯片支持的,与这无关。对此问题的再讨论如下:

    经过测试,可能此LCD的控制芯片有问题或模块有问题,分析原因:

    当写屏的地址起始和终止反过来填入就可以刷满屏了,但在其他的设置中就完全不对了。比如设置x=0x0000~0x0008,y=0x0000~0x0008,写一个数据;结果仅仅在顶部显示为一行,而不是一个色块!

    放弃继续实验和讨论了。

    玩过几乎所有的各种TFTLCD驱显芯片,从1.5寸~4.3寸的都有,此次第一次遇上这种的,很是沮丧。

    非常感谢

  • 各位老师!真晕菜,原子的代码原封不动的照搬过来试过,问题照旧!连线一根一根用万用表和示波器测过,不会有问题的,不然不会反制地址也可刷满屏。我已在前边说过了。

  • 应该是配置的问题,我就使用过原子的2.8存的屏幕,用电子的离城市没有问题的

  • 可以测量 一下,是不是有的地址线虚了,而数据只能是当前的240*240的范围内的

  • 这个肯定是程序设置的问题,有个宏定义可以设置分辨率大小,原子的屏都有配套代码可以用的,240*320全屏显示没有任何问题。

相关问题

问题达人换一批

Alientek TFTLCD驱显问题