I8080 8BIT 点亮 480x800 屏
danger
note
注意芯片型号!
note
首先确认芯片型号是否为支持型号。
:::
此次适配的 I8080 屏为 FPC39703MS-B200-40C-10,使用的是 I8080 8Bit 进行驱动。屏幕IC是 NT35510

引脚配置如下:
| V821 | 引脚复用功能 | TFT 模块 |
|---|---|---|
| PD1—PD8 | LCD-D3—LCD-D12 | D0—D7 |
| PD12 | LCD-VSYNC | TE |
| PD11 | LCD-HSYNC | RD |
| PD9 | LCD-CLK | WR |
| PD10 | LCD-DE | DC |
| PD14 | GPIO OUTPUT | CS |
| PD19 | GPIO OUTPUT | RESET |
编写 LCD 显示屏驱动
获取屏幕初始化序列
首先询问屏厂提供初始化序列,和屏幕手册。

这里我们使用 8Bit I8080 点屏,使用 8 位的初始化代码:
void LCD_Init(void)
{
RST=1;
Delay(5);
RST=0;
Delay(10);
RST=1;
Delay(120);
//NT35510SH_BOE3.97IPS_24BIT_20141224
WriteComm(0xFF00);WriteData(0x00AA);
WriteComm(0xFF01);WriteData(0x0055);
WriteComm(0xFF02);WriteData(0x00A5);
WriteComm(0xFF03);WriteData(0x0080);
WriteComm(0xF200);WriteData(0x0000);
WriteComm(0xF201);WriteData(0x0084);
WriteComm(0xF202);WriteData(0x0008);
WriteComm(0x6F00);WriteData(0x000A);
WriteComm(0xF400);WriteData(0x0013);
WriteComm(0xFF00);WriteData(0x00AA);
WriteComm(0xFF01);WriteData(0x0055);
WriteComm(0xFF02);WriteData(0x00A5);
WriteComm(0xFF03);WriteData(0x0000);
//Enable Page 1
WriteComm(0xF000);WriteData(0x0055);
WriteComm(0xF001);WriteData(0x00AA);
WriteComm(0xF002);WriteData(0x0052);
WriteComm(0xF003);WriteData(0x0008);
WriteComm(0xF004);WriteData(0x0001);
//AVDD Set AVDD 5.2V
WriteComm(0xB000);WriteData(0x000C);
WriteComm(0xB001);WriteData(0x000C);
WriteComm(0xB002);WriteData(0x000C);
//AVDD ratio
WriteComm(0xB600);WriteData(0x0046);
WriteComm(0xB601);WriteData(0x0046);
WriteComm(0xB602);WriteData(0x0046);
//AVEE -5.2V
WriteComm(0xB100);WriteData(0x000C);
WriteComm(0xB101);WriteData(0x000C);
WriteComm(0xB102);WriteData(0x000C);
//AVEE ratio
WriteComm(0xB700);WriteData(0x0026);
WriteComm(0xB701);WriteData(0x0026);
WriteComm(0xB702);WriteData(0x0026);
//VCL -2.5V
WriteComm(0xB200);WriteData(0x0000);
WriteComm(0xB201);WriteData(0x0000);
WriteComm(0xB202);WriteData(0x0000);
//VCL ratio
WriteComm(0xB800);WriteData(0x0034);
WriteComm(0xB801);WriteData(0x0034);
WriteComm(0xB802);WriteData(0x0034);
//VGH 15V (Free pump)
WriteComm(0xBF00);WriteData(0x0001);
WriteComm(0xB300);WriteData(0x0008);
WriteComm(0xB301);WriteData(0x0008);
WriteComm(0xB302);WriteData(0x0008);
//VGH ratio
WriteComm(0xB900);WriteData(0x0026);
WriteComm(0xB901);WriteData(0x0026);
WriteComm(0xB902);WriteData(0x0026);
//VGL_REG -10V
WriteComm(0xB500);WriteData(0x0008);
WriteComm(0xB501);WriteData(0x0008);
WriteComm(0xB502);WriteData(0x0008);
//WriteComm(0xC200);WriteData(0x0003);
//VGLX ratio
WriteComm(0xBA00);WriteData(0x0036);
WriteComm(0xBA01);WriteData(0x0036);
WriteComm(0xBA02);WriteData(0x0036);
//VGMP/VGSP 4.5V/0V
WriteComm(0xBC00);WriteData(0x0000);
WriteComm(0xBC01);WriteData(0x0080);
WriteComm(0xBC02);WriteData(0x0000);
//VGMN/VGSN -4.5V/0V
WriteComm(0xBD00);WriteData(0x0000);
WriteComm(0xBD01);WriteData(0x0080);
WriteComm(0xBD02);WriteData(0x0000);
//VCOM
WriteComm(0xBE00);WriteData(0x0000);
WriteComm(0xBE01);WriteData(0x0055); // 6A
//Gamma Setting
WriteComm(0xD100);WriteData(0x0000);
WriteComm(0xD101);WriteData(0x0001);
WriteComm(0xD102);WriteData(0x0000);
WriteComm(0xD103);WriteData(0x001C);
WriteComm(0xD104);WriteData(0x0000);
WriteComm(0xD105);WriteData(0x004E);
WriteComm(0xD106);WriteData(0x0000);
WriteComm(0xD107);WriteData(0x006A);
WriteComm(0xD108);WriteData(0x0000);
WriteComm(0xD109);WriteData(0x0085);
WriteComm(0xD10A);WriteData(0x0000);
WriteComm(0xD10B);WriteData(0x00AB);
WriteComm(0xD10C);WriteData(0x0000);
WriteComm(0xD10D);WriteData(0x00C4);
WriteComm(0xD10E);WriteData(0x0000);
WriteComm(0xD10F);WriteData(0x00FC);
WriteComm(0xD110);WriteData(0x0001);
WriteComm(0xD111);WriteData(0x0023);
WriteComm(0xD112);WriteData(0x0001);
WriteComm(0xD113);WriteData(0x0061);
WriteComm(0xD114);WriteData(0x0001);
WriteComm(0xD115);WriteData(0x0094);
WriteComm(0xD116);WriteData(0x0001);
WriteComm(0xD117);WriteData(0x00E4);
WriteComm(0xD118);WriteData(0x0002);
WriteComm(0xD119);WriteData(0x0027);
WriteComm(0xD11A);WriteData(0x0002);
WriteComm(0xD11B);WriteData(0x0029);
WriteComm(0xD11C);WriteData(0x0002);
WriteComm(0xD11D);WriteData(0x0065);
WriteComm(0xD11E);WriteData(0x0002);
WriteComm(0xD11F);WriteData(0x00A6);
WriteComm(0xD120);WriteData(0x0002);
WriteComm(0xD121);WriteData(0x00CA);
WriteComm(0xD122);WriteData(0x0002);
WriteComm(0xD123);WriteData(0x00FD);
WriteComm(0xD124);WriteData(0x0003);
WriteComm(0xD125);WriteData(0x001D);
WriteComm(0xD126);WriteData(0x0003);
WriteComm(0xD127);WriteData(0x004D);
WriteComm(0xD128);WriteData(0x0003);
WriteComm(0xD129);WriteData(0x006A);
WriteComm(0xD12A);WriteData(0x0003);
WriteComm(0xD12B);WriteData(0x0095);
WriteComm(0xD12C);WriteData(0x0003);
WriteComm(0xD12D);WriteData(0x00AC);
WriteComm(0xD12E);WriteData(0x0003);
WriteComm(0xD12F);WriteData(0x00CB);
WriteComm(0xD130);WriteData(0x0003);
WriteComm(0xD131);WriteData(0x00EA);
WriteComm(0xD132);WriteData(0x0003);
WriteComm(0xD133);WriteData(0x00EF);
WriteComm(0xD200);WriteData(0x0000);
WriteComm(0xD201);WriteData(0x0001);
WriteComm(0xD202);WriteData(0x0000);
WriteComm(0xD203);WriteData(0x001C);
WriteComm(0xD204);WriteData(0x0000);
WriteComm(0xD205);WriteData(0x004E);
WriteComm(0xD206);WriteData(0x0000);
WriteComm(0xD207);WriteData(0x006A);
WriteComm(0xD208);WriteData(0x0000);
WriteComm(0xD209);WriteData(0x0085);
WriteComm(0xD20A);WriteData(0x0000);
WriteComm(0xD20B);WriteData(0x00AB);
WriteComm(0xD20C);WriteData(0x0000);
WriteComm(0xD20D);WriteData(0x00C4);
WriteComm(0xD20E);WriteData(0x0000);
WriteComm(0xD20F);WriteData(0x00FC);
WriteComm(0xD210);WriteData(0x0001);
WriteComm(0xD211);WriteData(0x0023);
WriteComm(0xD212);WriteData(0x0001);
WriteComm(0xD213);WriteData(0x0061);
WriteComm(0xD214);WriteData(0x0001);
WriteComm(0xD215);WriteData(0x0094);
WriteComm(0xD216);WriteData(0x0001);
WriteComm(0xD217);WriteData(0x00E4);
WriteComm(0xD218);WriteData(0x0002);
WriteComm(0xD219);WriteData(0x0027);
WriteComm(0xD21A);WriteData(0x0002);
WriteComm(0xD21B);WriteData(0x0029);
WriteComm(0xD21C);WriteData(0x0002);
WriteComm(0xD21D);WriteData(0x0065);
WriteComm(0xD21E);WriteData(0x0002);
WriteComm(0xD21F);WriteData(0x00A6);
WriteComm(0xD220);WriteData(0x0002);
WriteComm(0xD221);WriteData(0x00CA);
WriteComm(0xD222);WriteData(0x0002);
WriteComm(0xD223);WriteData(0x00FD);
WriteComm(0xD224);WriteData(0x0003);
WriteComm(0xD225);WriteData(0x001D);
WriteComm(0xD226);WriteData(0x0003);
WriteComm(0xD227);WriteData(0x004D);
WriteComm(0xD228);WriteData(0x0003);
WriteComm(0xD229);WriteData(0x006A);
WriteComm(0xD22A);WriteData(0x0003);
WriteComm(0xD22B);WriteData(0x0095);
WriteComm(0xD22C);WriteData(0x0003);
WriteComm(0xD22D);WriteData(0x00AC);
WriteComm(0xD22E);WriteData(0x0003);
WriteComm(0xD22F);WriteData(0x00CB);
WriteComm(0xD230);WriteData(0x0003);
WriteComm(0xD231);WriteData(0x00EA);
WriteComm(0xD232);WriteData(0x0003);
WriteComm(0xD233);WriteData(0x00EF);
WriteComm(0xD300);WriteData(0x0000);
WriteComm(0xD301);WriteData(0x0001);
WriteComm(0xD302);WriteData(0x0000);
WriteComm(0xD303);WriteData(0x001C);
WriteComm(0xD304);WriteData(0x0000);
WriteComm(0xD305);WriteData(0x004E);
WriteComm(0xD306);WriteData(0x0000);
WriteComm(0xD307);WriteData(0x006A);
WriteComm(0xD308);WriteData(0x0000);
WriteComm(0xD309);WriteData(0x0085);
WriteComm(0xD30A);WriteData(0x0000);
WriteComm(0xD30B);WriteData(0x00AB);
WriteComm(0xD30C);WriteData(0x0000);
WriteComm(0xD30D);WriteData(0x00C4);
WriteComm(0xD30E);WriteData(0x0000);
WriteComm(0xD30F);WriteData(0x00FC);
WriteComm(0xD310);WriteData(0x0001);
WriteComm(0xD311);WriteData(0x0023);
WriteComm(0xD312);WriteData(0x0001);
WriteComm(0xD313);WriteData(0x0061);
WriteComm(0xD314);WriteData(0x0001);
WriteComm(0xD315);WriteData(0x0094);
WriteComm(0xD316);WriteData(0x0001);
WriteComm(0xD317);WriteData(0x00E4);
WriteComm(0xD318);WriteData(0x0002);
WriteComm(0xD319);WriteData(0x0027);
WriteComm(0xD31A);WriteData(0x0002);
WriteComm(0xD31B);WriteData(0x0029);
WriteComm(0xD31C);WriteData(0x0002);
WriteComm(0xD31D);WriteData(0x0065);
WriteComm(0xD31E);WriteData(0x0002);
WriteComm(0xD31F);WriteData(0x00A6);
WriteComm(0xD320);WriteData(0x0002);
WriteComm(0xD321);WriteData(0x00CA);
WriteComm(0xD322);WriteData(0x0002);
WriteComm(0xD323);WriteData(0x00FD);
WriteComm(0xD324);WriteData(0x0003);
WriteComm(0xD325);WriteData(0x001D);
WriteComm(0xD326);WriteData(0x0003);
WriteComm(0xD327);WriteData(0x004D);
WriteComm(0xD328);WriteData(0x0003);
WriteComm(0xD329);WriteData(0x006A);
WriteComm(0xD32A);WriteData(0x0003);
WriteComm(0xD32B);WriteData(0x0095);
WriteComm(0xD32C);WriteData(0x0003);
WriteComm(0xD32D);WriteData(0x00AC);
WriteComm(0xD32E);WriteData(0x0003);
WriteComm(0xD32F);WriteData(0x00CB);
WriteComm(0xD330);WriteData(0x0003);
WriteComm(0xD331);WriteData(0x00EA);
WriteComm(0xD332);WriteData(0x0003);
WriteComm(0xD333);WriteData(0x00EF);
WriteComm(0xD400);WriteData(0x0000);
WriteComm(0xD401);WriteData(0x0001);
WriteComm(0xD402);WriteData(0x0000);
WriteComm(0xD403);WriteData(0x001C);
WriteComm(0xD404);WriteData(0x0000);
WriteComm(0xD405);WriteData(0x004E);
WriteComm(0xD406);WriteData(0x0000);
WriteComm(0xD407);WriteData(0x006A);
WriteComm(0xD408);WriteData(0x0000);
WriteComm(0xD409);WriteData(0x0085);
WriteComm(0xD40A);WriteData(0x0000);
WriteComm(0xD40B);WriteData(0x00AB);
WriteComm(0xD40C);WriteData(0x0000);
WriteComm(0xD40D);WriteData(0x00C4);
WriteComm(0xD40E);WriteData(0x0000);
WriteComm(0xD40F);WriteData(0x00FC);
WriteComm(0xD410);WriteData(0x0001);
WriteComm(0xD411);WriteData(0x0023);
WriteComm(0xD412);WriteData(0x0001);
WriteComm(0xD413);WriteData(0x0061);
WriteComm(0xD414);WriteData(0x0001);
WriteComm(0xD415);WriteData(0x0094);
WriteComm(0xD416);WriteData(0x0001);
WriteComm(0xD417);WriteData(0x00E4);
WriteComm(0xD418);WriteData(0x0002);
WriteComm(0xD419);WriteData(0x0027);
WriteComm(0xD41A);WriteData(0x0002);
WriteComm(0xD41B);WriteData(0x0029);
WriteComm(0xD41C);WriteData(0x0002);
WriteComm(0xD41D);WriteData(0x0065);
WriteComm(0xD41E);WriteData(0x0002);
WriteComm(0xD41F);WriteData(0x00A6);
WriteComm(0xD420);WriteData(0x0002);
WriteComm(0xD421);WriteData(0x00CA);
WriteComm(0xD422);WriteData(0x0002);
WriteComm(0xD423);WriteData(0x00FD);
WriteComm(0xD424);WriteData(0x0003);
WriteComm(0xD425);WriteData(0x001D);
WriteComm(0xD426);WriteData(0x0003);
WriteComm(0xD427);WriteData(0x004D);
WriteComm(0xD428);WriteData(0x0003);
WriteComm(0xD429);WriteData(0x006A);
WriteComm(0xD42A);WriteData(0x0003);
WriteComm(0xD42B);WriteData(0x0095);
WriteComm(0xD42C);WriteData(0x0003);
WriteComm(0xD42D);WriteData(0x00AC);
WriteComm(0xD42E);WriteData(0x0003);
WriteComm(0xD42F);WriteData(0x00CB);
WriteComm(0xD430);WriteData(0x0003);
WriteComm(0xD431);WriteData(0x00EA);
WriteComm(0xD432);WriteData(0x0003);
WriteComm(0xD433);WriteData(0x00EF);
WriteComm(0xD500);WriteData(0x0000);
WriteComm(0xD501);WriteData(0x0001);
WriteComm(0xD502);WriteData(0x0000);
WriteComm(0xD503);WriteData(0x001C);
WriteComm(0xD504);WriteData(0x0000);
WriteComm(0xD505);WriteData(0x004E);
WriteComm(0xD506);WriteData(0x0000);
WriteComm(0xD507);WriteData(0x006A);
WriteComm(0xD508);WriteData(0x0000);
WriteComm(0xD509);WriteData(0x0085);
WriteComm(0xD50A);WriteData(0x0000);
WriteComm(0xD50B);WriteData(0x00AB);
WriteComm(0xD50C);WriteData(0x0000);
WriteComm(0xD50D);WriteData(0x00C4);
WriteComm(0xD50E);WriteData(0x0000);
WriteComm(0xD50F);WriteData(0x00FC);
WriteComm(0xD510);WriteData(0x0001);
WriteComm(0xD511);WriteData(0x0023);
WriteComm(0xD512);WriteData(0x0001);
WriteComm(0xD513);WriteData(0x0061);
WriteComm(0xD514);WriteData(0x0001);
WriteComm(0xD515);WriteData(0x0094);
WriteComm(0xD516);WriteData(0x0001);
WriteComm(0xD517);WriteData(0x00E4);
WriteComm(0xD518);WriteData(0x0002);
WriteComm(0xD519);WriteData(0x0027);
WriteComm(0xD51A);WriteData(0x0002);
WriteComm(0xD51B);WriteData(0x0029);
WriteComm(0xD51C);WriteData(0x0002);
WriteComm(0xD51D);WriteData(0x0065);
WriteComm(0xD51E);WriteData(0x0002);
WriteComm(0xD51F);WriteData(0x00A6);
WriteComm(0xD520);WriteData(0x0002);
WriteComm(0xD521);WriteData(0x00CA);
WriteComm(0xD522);WriteData(0x0002);
WriteComm(0xD523);WriteData(0x00FD);
WriteComm(0xD524);WriteData(0x0003);
WriteComm(0xD525);WriteData(0x001D);
WriteComm(0xD526);WriteData(0x0003);
WriteComm(0xD527);WriteData(0x004D);
WriteComm(0xD528);WriteData(0x0003);
WriteComm(0xD529);WriteData(0x006A);
WriteComm(0xD52A);WriteData(0x0003);
WriteComm(0xD52B);WriteData(0x0095);
WriteComm(0xD52C);WriteData(0x0003);
WriteComm(0xD52D);WriteData(0x00AC);
WriteComm(0xD52E);WriteData(0x0003);
WriteComm(0xD52F);WriteData(0x00CB);
WriteComm(0xD530);WriteData(0x0003);
WriteComm(0xD531);WriteData(0x00EA);
WriteComm(0xD532);WriteData(0x0003);
WriteComm(0xD533);WriteData(0x00EF);
WriteComm(0xD600);WriteData(0x0000);
WriteComm(0xD601);WriteData(0x0001);
WriteComm(0xD602);WriteData(0x0000);
WriteComm(0xD603);WriteData(0x001C);
WriteComm(0xD604);WriteData(0x0000);
WriteComm(0xD605);WriteData(0x004E);
WriteComm(0xD606);WriteData(0x0000);
WriteComm(0xD607);WriteData(0x006A);
WriteComm(0xD608);WriteData(0x0000);
WriteComm(0xD609);WriteData(0x0085);
WriteComm(0xD60A);WriteData(0x0000);
WriteComm(0xD60B);WriteData(0x00AB);
WriteComm(0xD60C);WriteData(0x0000);
WriteComm(0xD60D);WriteData(0x00C4);
WriteComm(0xD60E);WriteData(0x0000);
WriteComm(0xD60F);WriteData(0x00FC);
WriteComm(0xD610);WriteData(0x0001);
WriteComm(0xD611);WriteData(0x0023);
WriteComm(0xD612);WriteData(0x0001);
WriteComm(0xD613);WriteData(0x0061);
WriteComm(0xD614);WriteData(0x0001);
WriteComm(0xD615);WriteData(0x0094);
WriteComm(0xD616);WriteData(0x0001);
WriteComm(0xD617);WriteData(0x00E4);
WriteComm(0xD618);WriteData(0x0002);
WriteComm(0xD619);WriteData(0x0027);
WriteComm(0xD61A);WriteData(0x0002);
WriteComm(0xD61B);WriteData(0x0029);
WriteComm(0xD61C);WriteData(0x0002);
WriteComm(0xD61D);WriteData(0x0065);
WriteComm(0xD61E);WriteData(0x0002);
WriteComm(0xD61F);WriteData(0x00A6);
WriteComm(0xD620);WriteData(0x0002);
WriteComm(0xD621);WriteData(0x00CA);
WriteComm(0xD622);WriteData(0x0002);
WriteComm(0xD623);WriteData(0x00FD);
WriteComm(0xD624);WriteData(0x0003);
WriteComm(0xD625);WriteData(0x001D);
WriteComm(0xD626);WriteData(0x0003);
WriteComm(0xD627);WriteData(0x004D);
WriteComm(0xD628);WriteData(0x0003);
WriteComm(0xD629);WriteData(0x006A);
WriteComm(0xD62A);WriteData(0x0003);
WriteComm(0xD62B);WriteData(0x0095);
WriteComm(0xD62C);WriteData(0x0003);
WriteComm(0xD62D);WriteData(0x00AC);
WriteComm(0xD62E);WriteData(0x0003);
WriteComm(0xD62F);WriteData(0x00CB);
WriteComm(0xD630);WriteData(0x0003);
WriteComm(0xD631);WriteData(0x00EA);
WriteComm(0xD632);WriteData(0x0003);
WriteComm(0xD633);WriteData(0x00EF);
//Enable Page 0
WriteComm(0xF000);WriteData(0x0055);
WriteComm(0xF001);WriteData(0x00AA);
WriteComm(0xF002);WriteData(0x0052);
WriteComm(0xF003);WriteData(0x0008);
WriteComm(0xF004);WriteData(0x0000);
//Display control
WriteComm(0xB100);WriteData(0x00CC);// MCU I/F & mipi cmd mode?CC, RGB I/F & mipi video mode ?FC
WriteComm(0xB101);WriteData(0x0000);
WriteComm(0xB400);WriteData(0x0010);
//Source hold time
WriteComm(0xB600);WriteData(0x0005);
//Gate EQ control
WriteComm(0xB700);WriteData(0x0070);
WriteComm(0xB701);WriteData(0x0070);
//Source EQ control (Mode 2)
WriteComm(0xB800);WriteData(0x0001);
WriteComm(0xB801);WriteData(0x0005);
WriteComm(0xB802);WriteData(0x0005);
WriteComm(0xB803);WriteData(0x0005);
//Inversion mode (C)
WriteComm(0xBC00);WriteData(0x0002); //02:2DOT
WriteComm(0xBC01);WriteData(0x0000);
WriteComm(0xBC02);WriteData(0x0000);
//BOE's Setting (default)
WriteComm(0xCC00);WriteData(0x0003);
WriteComm(0xCC01);WriteData(0x0050);
WriteComm(0xCC02);WriteData(0x0050);
//Porch Adjust
WriteComm(0xBD00);WriteData(0x0001);
WriteComm(0xBD01);WriteData(0x0084);
WriteComm(0xBD02);WriteData(0x0007);
WriteComm(0xBD03);WriteData(0x0031);
WriteComm(0xBD04);WriteData(0x0000);
WriteComm(0xBE00);WriteData(0x0001);
WriteComm(0xBE01);WriteData(0x0084);
WriteComm(0xBE02);WriteData(0x0007);
WriteComm(0xBE03);WriteData(0x0031);
WriteComm(0xBE04);WriteData(0x0000);
WriteComm(0xBF00);WriteData(0x0001);
WriteComm(0xBF01);WriteData(0x0084);
WriteComm(0xBF02);WriteData(0x0007);
WriteComm(0xBF03);WriteData(0x0031);
WriteComm(0xBF04);WriteData(0x0000);
WriteComm(0x3500);WriteData(0x0000);
WriteComm(0x3600);WriteData(0x0000);
WriteComm(0x3A00);WriteData(0x0055); //0x77:24BIT
WriteComm(0x1100);
Delay(120);
WriteComm(0x2900);
Delay(120);
}
编写屏幕驱动
选择一个现成的 LCD 驱动,复制一份出来改写即可,这里选择 st7789v_cpu.c 驱动来修改。
先复制一份,把驱动全部重命名新屏幕 nt35510_cpu,包括内置的变量与命名

代码内 st7789v 相关字段也重命名新屏幕 nt35510

找到初始化序列的部分 static void lcd_panel_nt35510_init(u32 sel, struct disp_panel_para *info)

查阅屏幕手册可知,这个屏幕的命令写是16位,数据写是8位或16位。

由于使用的是 8bit MCU 接口,一次无法传 16 位的数据,所以需要实现函数拆分成两部分发送。在这里封装两个函数供使用:
static void sunxi_lcd_cpu_write_index_16b_8b(u32 sel, u32 i)
{
sunxi_lcd_cpu_write_index(sel, (i >> 8) & 0xFF);
sunxi_lcd_cpu_write_index(sel, i & 0xFF);
}
static void sunxi_lcd_cpu_write_data_8b(u32 sel, u32 i)
{
sunxi_lcd_cpu_write_data(sel, i & 0xFF);
}
把原来的初始化序列删除,然后将屏厂提供的初始化序列复制进来。
| 屏厂函数 | LCD框架接口 |
|---|---|
WriteComm | sunxi_lcd_cpu_write_index_16b_8b |
WriteData | sunxi_lcd_cpu_write_data_8b |
Delayms | sunxi_lcd_delay_ms |
