durongze 发表于 2024-5-15 00:57:38

关于点亮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根线?
      

durongze 发表于 2024-5-15 01:07:18

现在还稀里糊涂的。这个是官网的初始化(先记录下,晚点分析):
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);

}

durongze 发表于 2024-5-17 19:09:23

用最少的针脚数来完成的话,就用iic.   除了iic占用两根线,还有res. cs .dc。这3个脚的使用在iic写字节时有使用。

durongze 发表于 2024-5-20 01:46:00

这个好像是并行模式

zhange 发表于 2024-7-28 16:46:48

lcd   你这个像是   spi驱动的   {:4_174:}{:4_174:}我最近也在研究    你研究明白没

durongze 发表于 2024-7-31 13:03:21

zhange 发表于 2024-7-28 16:46
lcd   你这个像是   spi驱动的   我最近也在研究    你研究明白没

你讲讲你的理解呗。我懂的就上面那么多,其他的没了。

zhange 发表于 2024-7-31 15:00:02

durongze 发表于 2024-7-31 13:03
你讲讲你的理解呗。我懂的就上面那么多,其他的没了。

{:2_25:}我都驱动完了    字库都烧进去了
页: [1]
查看完整版本: 关于点亮tft屏幕问题。