dongfang 发表于 2026-1-31 13:52:59

关于彩屏驱动,都是st7789驱动芯片,2.4可以,2.0就不行,有经验求解

我买了两块并口彩屏,一个2.4,一个2.0,驱动芯片ST7789,理论上可以使用同一个程序驱动,但2.4可以,2.0就不行,求大佬解惑

ercircle 发表于 2026-1-31 14:47:19

最好是找屏幕厂商要例程

这有个7789 2.0寸的初始化序列,看看是否可用
AiCube 图形化自动生成程序,TFT-彩屏@Ai8051U, 驱动 ST7735S,ST7739, ST7789 - 第9页 - TFT彩屏,触摸屏,DMA-i8080/M6800并口自动刷屏,DMA-SPI刷屏,外设直接到外设 国芯人工智能技术交流网站 - AI32位8051交流社区

void lcd_initial_320_240_020()
{
    SPI_SCK_0;
    SPI_RST_0;

    delay_ms(1000);
    SPI_RST_1;
    delay_ms(1000);
    TFT_SEND_CMD(0x11); // Sleep Out
    delay_ms(120);      // DELAY120ms
    //--------------------------------ST7789S Frame rate setting----------------------------------//
    TFT_SEND_CMD(0x2a);// Column address set
    TFT_SEND_DATA(0x00); // start column
    TFT_SEND_DATA(0x00);
    TFT_SEND_DATA(0x00); // end column
    TFT_SEND_DATA(0xef);

    TFT_SEND_CMD(0x2b);// Row address set
    TFT_SEND_DATA(0x00); // start row
    TFT_SEND_DATA(0x28);
    TFT_SEND_DATA(0x01); // end row
    TFT_SEND_DATA(0x17);

    TFT_SEND_CMD(0xb2); // Porch control
    TFT_SEND_DATA(0x0c);
    TFT_SEND_DATA(0x0c);
    TFT_SEND_DATA(0x00);
    TFT_SEND_DATA(0x33);
    TFT_SEND_DATA(0x33);

    TFT_SEND_CMD(0x20); // Display Inversion Off

    TFT_SEND_CMD(0xb7);// Gate control
    TFT_SEND_DATA(0x56); // 35
    //---------------------------------ST7789S Power setting--------------------------------------//
    TFT_SEND_CMD(0xbb);// VCOMS Setting
    TFT_SEND_DATA(0x18); // 1f

    TFT_SEND_CMD(0xc0); // LCM Control
    TFT_SEND_DATA(0x2c);

    TFT_SEND_CMD(0xc2); // VDV and VRH Command Enable
    TFT_SEND_DATA(0x01);

    TFT_SEND_CMD(0xc3);// VRH Set
    TFT_SEND_DATA(0x1f); // 12

    TFT_SEND_CMD(0xc4); // VDV Setting
    TFT_SEND_DATA(0x20);

    TFT_SEND_CMD(0xc6); // FR Control 2
    TFT_SEND_DATA(0x0f);
    // TFT_SEND_CMD(0xca);
    // TFT_SEND_DATA(0x0f);
    // TFT_SEND_CMD(0xc8);
    // TFT_SEND_DATA(0x08);
    // TFT_SEND_CMD(0x55);
    // TFT_SEND_DATA(0x90);
    TFT_SEND_CMD(0xd0);// Power Control 1
    TFT_SEND_DATA(0xa6); // a4
    TFT_SEND_DATA(0xa1);
    //--------------------------------ST7789S gamma setting---------------------------------------//

    TFT_SEND_CMD(0xe0);
    TFT_SEND_DATA(0xd0);
    TFT_SEND_DATA(0x0d);
    TFT_SEND_DATA(0x14);
    TFT_SEND_DATA(0x0b);
    TFT_SEND_DATA(0x0b);
    TFT_SEND_DATA(0x07);
    TFT_SEND_DATA(0x3a);
    TFT_SEND_DATA(0x44);
    TFT_SEND_DATA(0x50);
    TFT_SEND_DATA(0x08);
    TFT_SEND_DATA(0x13);
    TFT_SEND_DATA(0x13);
    TFT_SEND_DATA(0x2d);
    TFT_SEND_DATA(0x32);

    TFT_SEND_CMD(0xe1); // Negative Voltage Gamma Contro
    TFT_SEND_DATA(0xd0);
    TFT_SEND_DATA(0x0d);
    TFT_SEND_DATA(0x14);
    TFT_SEND_DATA(0x0b);
    TFT_SEND_DATA(0x0b);
    TFT_SEND_DATA(0x07);
    TFT_SEND_DATA(0x3a);
    TFT_SEND_DATA(0x44);
    TFT_SEND_DATA(0x50);
    TFT_SEND_DATA(0x08);
    TFT_SEND_DATA(0x13);
    TFT_SEND_DATA(0x13);
    TFT_SEND_DATA(0x2d);
    TFT_SEND_DATA(0x32);

    TFT_SEND_CMD(0x36); // Memory data access control
#if (DIS_DIR == 0)      // 正常竖显
    TFT_SEND_DATA(0x00);
#elif (DIS_DIR == 1) // 旋转90度显示
    TFT_SEND_DATA(0xA0);
#elif (DIS_DIR == 2) // 旋转180度显示
    TFT_SEND_DATA(0xC0);
#elif (DIS_DIR == 3) // 旋转270度显示
    TFT_SEND_DATA(0x60);
#endif
    TFT_SEND_CMD(0x3A);// Interface pixel format
    TFT_SEND_DATA(0x55); // 65K
    // TFT_SEND_DATA(0x66);      //262KRGB 6 6 6

    TFT_SEND_CMD(0xe7); // SPI2 enable    启用2数据通道模式
    TFT_SEND_DATA(0x00);

    TFT_SEND_CMD(0x21); // Display inversion on
    TFT_SEND_CMD(0x29); // Display on
    TFT_SEND_CMD(0x2C); // Memory write
}

dongfang 发表于 2026-1-31 15:58:19

ercircle 发表于 2026-1-31 14:47
最好是找屏幕厂商要例程

这有个7789 2.0寸的初始化序列,看看是否可用

我把初始化函数按这个改过,商家提供的例程就是这样,按他这个初始化2.4英寸屏颜色有所变化,但2.0屏还是不能显示

ercircle 发表于 2026-1-31 16:09:00

dongfang 发表于 2026-1-31 15:58
我把初始化函数按这个改过,商家提供的例程就是这样,按他这个初始化2.4英寸屏颜色有所变化,但2.0屏还是 ...

让卖家提供测试视频?检查检查线路连接啥的,不行退货换一个,,,

dongfang 发表于 2026-2-1 09:06:53

ercircle 发表于 2026-1-31 16:09
让卖家提供测试视频?检查检查线路连接啥的,不行退货换一个,,,
非常感谢,线路检查检测了,我先从一家买的,不行,
又从我之前买过2.0串口那家,买了一块,还是不行,
两个都是一样,只是背光亮,这个驱动用在串口2.0上,
并口2.4上都是没有问题,很是奇怪。
页: [1]
查看完整版本: 关于彩屏驱动,都是st7789驱动芯片,2.4可以,2.0就不行,有经验求解