关于点亮tft屏幕问题。
官方给的例子里有这样一段代码:不是用gpio模拟iic的方式对吧?这个
void LCD_RegWriteComd(u8 cmd)
{
LCD_RS_CLR(); //point to ID register
LCD_CS_CLR();
LCD_BUS_H = 0;
LCD_BUS_L = cmd;
LCD_WR_PULSE();
LCD_RS_SET(); //point to GRAM
LCD_CS_SET();
}
void LCD_RegWriteData(u8 dat)
{
// LCD_RS_SET(); //point to GRAM
LCD_CS_CLR();
LCD_BUS_H = 0;
LCD_BUS_L = dat;
LCD_WR_PULSE();
LCD_CS_SET();
}
红色部分这个算是用什么方式点亮的屏幕呢? 这个既不是iic也不是spi对吧?
-----------------------------------
有没有用gpio去模拟iic的方式呢?
-----------------------------------
我看网上有类似这样的代码:
RES=0;
delay(1000);
RES=1;
delay(1000);
write_i(0xAE); /*display off*/
之后就都是iic发指令了。
这个才算是iic吧?
iic两根线 + res一根线。总共需要3根线?
现在还稀里糊涂的。这个是官网的初始化(先记录下,晚点分析):
void LCD_Init(void)
{
P6n_standard(0xff);
P2n_standard(0xff);
P4n_standard(0x2e);
background = 0x00;
foreground = 0xffff;
LCD_RS_SET();
LCD_CS_SET();
LCD_BUS_H = 0xFF;
LCD_BUS_L = 0xFF;
LCD_WR_SET();
LCD_RST_SET();
LCD_delay(150);
LCD_RST_CLR();
LCD_delay(150);
LCD_RST_SET();
LCD_delay(150);
//************* ILI9481初始化**********//
LCD_RegWriteComd(0x11);
LCD_delay(20);
LCD_RegWriteComd(0xD0);
LCD_RegWriteData(0x07);
LCD_RegWriteData(0x42);
LCD_RegWriteData(0x18);
LCD_RegWriteComd(0xD1);
LCD_RegWriteData(0x00);
LCD_RegWriteData(0x07);//07
LCD_RegWriteData(0x10);
LCD_RegWriteComd(0xD2);
LCD_RegWriteData(0x01);
LCD_RegWriteData(0x02);
LCD_RegWriteComd(0xC0);
LCD_RegWriteData(0x10);
LCD_RegWriteData(0x3B);
LCD_RegWriteData(0x00);
LCD_RegWriteData(0x02);
LCD_RegWriteData(0x11);
LCD_RegWriteComd(0xC5);
LCD_RegWriteData(0x03);
LCD_RegWriteComd(0xC8);
LCD_RegWriteData(0x00);
LCD_RegWriteData(0x32);
LCD_RegWriteData(0x36);
LCD_RegWriteData(0x45);
LCD_RegWriteData(0x06);
LCD_RegWriteData(0x16);
LCD_RegWriteData(0x37);
LCD_RegWriteData(0x75);
LCD_RegWriteData(0x77);
LCD_RegWriteData(0x54);
LCD_RegWriteData(0x0C);
LCD_RegWriteData(0x00);
LCD_RegWriteComd(0x36);
#if (X_DOTS == 320)
LCD_RegWriteData(0x0A);
#endif
#if (X_DOTS == 480)
LCD_RegWriteData(0x28);
#endif
LCD_RegWriteComd(0x3A);
LCD_RegWriteData(0x55);
LCD_RegWriteComd(0x2A);
LCD_RegWriteData(0x00);
LCD_RegWriteData(0x00);
// LCD_RegWriteData(0x01);
// LCD_RegWriteData(0x3F);
LCD_RegWriteData(((X_DOTS-1)>>8));
LCD_RegWriteData(((X_DOTS-1)&0xff));
LCD_RegWriteComd(0x2B);
LCD_RegWriteData(0x00);
LCD_RegWriteData(0x00);
// LCD_RegWriteData(0x01);
// LCD_RegWriteData(0xE0);
LCD_RegWriteData(((Y_DOTS-1)>>8));
LCD_RegWriteData(((Y_DOTS-1)&0xff));
LCD_delay(120);
// LCD_RegWriteComd(0x21); //取反显示, 有的屏要取反才是正常显示
LCD_RegWriteComd(0x29);
LCD_RegWriteComd(0x2c);
//设置LCD属性参数
SetView_V(); //竖屏
LCD_delay(1);
LCD_Fill_XY(0,0,X_DOTS,Y_DOTS,0x0000);
} 用最少的针脚数来完成的话,就用iic. 除了iic占用两根线,还有res. cs .dc。这3个脚的使用在iic写字节时有使用。 这个好像是并行模式 lcd 你这个像是 spi驱动的 {:4_174:}{:4_174:}我最近也在研究 你研究明白没 zhange 发表于 2024-7-28 16:46
lcd 你这个像是 spi驱动的 我最近也在研究 你研究明白没
你讲讲你的理解呗。我懂的就上面那么多,其他的没了。 durongze 发表于 2024-7-31 13:03
你讲讲你的理解呗。我懂的就上面那么多,其他的没了。
{:2_25:}我都驱动完了 字库都烧进去了
页:
[1]