6. 屏模块通信
6.1 SPI 通信
3.5 寸液晶模组支持 SPI 4 线串行通信,使用 CS、SCL、SDA、RS 四线。通过设置 IM1=1, IM2=1 切换到 SPI 模式。
SPI 通信连接图
SPI 通信连接图
SPI 通信原理图
SPI 通信原理图
点亮屏流程
点亮屏流程
屏需要初始化驱动 IC 后才能正常显示。使用 SPI 模式时,需按照 ILI9488 初始化序列配置寄存器,包括电源设置、时序配置、Gamma 校正等。
6.2 8080 通信
3.5 寸液晶模组同时支持 8080 8-bit 并口通信,使用 13 条信号线。通过设置 IM1=0, IM2=0 切换到 8080 模式。
8080 驱动程序示例
void SendData(unsigned char dat) {
if(dat & 0x01) LCD_D0_HIGH; else LCD_D0_LOW;
if(dat & 0x02) LCD_D1_HIGH; else LCD_D1_LOW;
if(dat & 0x04) LCD_D2_HIGH; else LCD_D2_LOW;
if(dat & 0x08) LCD_D3_HIGH; else LCD_D3_LOW;
if(dat & 0x10) LCD_D4_HIGH; else LCD_D4_LOW;
if(dat & 0x20) LCD_D5_HIGH; else LCD_D5_LOW;
if(dat & 0x40) LCD_D6_HIGH; else LCD_D6_LOW;
if(dat & 0x80) LCD_D7_HIGH; else LCD_D7_LOW;
}
void WriteComm(unsigned int i) {
LCD_CS_LOW; LCD_DC_LOW; SendData(i);
LCD_WR_LOW; LCD_WR_HIGH; LCD_CS_HIGH;
}
void WriteData(unsigned int i) {
LCD_CS_LOW; LCD_DC_HIGH; SendData(i);
LCD_WR_LOW; LCD_WR_HIGH; LCD_CS_HIGH;
}
6.3 驱动程序
void lcd_setblock(uint16_t xs, uint16_t ys, uint16_t xe, uint16_t ye) {
lcd_wr_command(0x2A);
lcd_wr_data(xs >> 8); lcd_wr_data(xs);
lcd_wr_data(xe >> 8); lcd_wr_data(xe);
lcd_wr_command(0x2B);
lcd_wr_data(ys >> 8); lcd_wr_data(ys);
lcd_wr_data(ye >> 8); lcd_wr_data(ye);
lcd_wr_command(0x2C);
}
void lcd_display_image(uint32_t address, uint16_t x, uint16_t y,
uint16_t w, uint16_t h) {
uint8_t *buff = buffer_write;
uint32_t len = w * h << 1;
lcd_setblock(x, y, x + w - 1, y + h - 1);
spiflash_read(buff, address, len);
for (uint32_t i = 0; i < len; i++)
lcd_wr_data(buff[i]);
}
完整驱动程序示例代码(含 lcd_8080_init、lcd_spi_init、lcd_clear、show_ch 等函数)请参阅完整 PDF 数据手册。

