|
1、使用3.5寸SPI触摸显示屏,分辨率:480*320 ;驱动IC: ILI9488;
采用的是SPI DMA 驱动,使用emWin。
2、TFT LCD驱动接口部分:
2.8inch,3.5inch接口通用
3、项目产品照片:
4、产品配线图:
5、产品适配TFT LCD 对照:
6、应用说明:
a.3.5英寸SPI触摸显示屏模块,采用SPI四线接口,只能支持RGB666数据模式。
【说明: 想采用RGB565模式,怎么测试都不能正常初始化!】
b.因为原来项目用的是2.8英寸SPI触摸显示屏模块,驱动IC是: ILI9341,采用RGB565模式,是可以正常使用的。
现在采用3.5英寸SPI触摸显示屏模块,想继续选用原来的模式,怎么测试都没有成功,只好改成RGB666模式的,
才正常运行。
c. 原来采用RGB565模式的SPI DMA驱动,也就必须修改,才能正常运行。
请看下面的DMA驱动代码部分:
LCD_Core.c
(4.69 KB, 下载次数: 111)
ILI9488_ucgui.rar
(1.94 KB, 下载次数: 139)
void LCD_putPixel(u16 x, u16 y, u16 color) {
u8 t3clr[3];
t3clr[0]=(color>>8)&0xF8;
t3clr[1]=(color>>3)&0xFC;
t3clr[2]=color<<3;
LCD_setAddressWindowToWrite(x, y, x, y);
dmaSendData8(t3clr, 3);
}
static void LCD_putPixelCont(u16 x, u16 y, u16 color) {
LCD_putPixel(x,y,color);
}
void LCD_fillRect(u16 x1, u16 y1, u16 w, u16 h, u16 color) {
u32 count = w * h;
LCD_setAddressWindowToWrite(x1, y1, (u16) (x1 + w - 1), (u16) (y1 + h - 1));
dmaFill8(color, count);
}
void LCD_fillScreen(u16 color) {
LCD_fillRect(0, 0, LCD_getWidth(), LCD_getHeight(), color);
}
void SPI_LCD_DMAInit(void) {
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
// TX
NVIC_EnableIRQ(DMA1_Channel3_IRQn);
DMA_ITConfig(DMA1_Channel3, DMA_IT_TC, ENABLE);
// RX
NVIC_EnableIRQ(DMA1_Channel2_IRQn);
DMA_ITConfig(DMA1_Channel2, DMA_IT_TC, ENABLE);
SPI_I2S_DMACmd(SPI_MASTER, SPI_I2S_DMAReq_Tx, ENABLE);
SPI_I2S_DMACmd(SPI_MASTER, SPI_I2S_DMAReq_Rx, ENABLE);
}
|
|