关于彩屏驱动,都是st7789驱动芯片,2.4可以,2.0就不行,有经验求解
我买了两块并口彩屏,一个2.4,一个2.0,驱动芯片ST7789,理论上可以使用同一个程序驱动,但2.4可以,2.0就不行,求大佬解惑最好是找屏幕厂商要例程
这有个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
}
ercircle 发表于 2026-1-31 14:47
最好是找屏幕厂商要例程
这有个7789 2.0寸的初始化序列,看看是否可用
我把初始化函数按这个改过,商家提供的例程就是这样,按他这个初始化2.4英寸屏颜色有所变化,但2.0屏还是不能显示 dongfang 发表于 2026-1-31 15:58
我把初始化函数按这个改过,商家提供的例程就是这样,按他这个初始化2.4英寸屏颜色有所变化,但2.0屏还是 ...
让卖家提供测试视频?检查检查线路连接啥的,不行退货换一个,,,
ercircle 发表于 2026-1-31 16:09
让卖家提供测试视频?检查检查线路连接啥的,不行退货换一个,,,
非常感谢,线路检查检测了,我先从一家买的,不行,
又从我之前买过2.0串口那家,买了一块,还是不行,
两个都是一样,只是背光亮,这个驱动用在串口2.0上,
并口2.4上都是没有问题,很是奇怪。
页:
[1]