SPI 제어 방식 1.8" 칼라 TFTLCD 모듈로 지원 해상도는 128x160이며 AVR, PIC, MSP430, STM32 등의 CPU에서 SPI 신호 CLK, MISO, MOSI, RST와 명령어/데이타(C/D) 제어신호만으로 LCD를 구동할 수 있습니다. SD카드 리드/라이트용 신호 I/F가 별도로 지원됩니다.
<STM32 사용시>
/********************************************
TFT_CS STM32_PA4
RESET STM32_PB0
TFT_A0 STM32_PC4
TFT_SDA STM32_SPI1_MOSI
TFT_SCK STM32_SPI1_SCK
********************************************/
u8 SPI_WriteByte(SPI_TypeDef* SPIx,u8 Byte)
{
while((SPIx->SR&SPI_I2S_FLAG_TXE)==RESET);
SPIx->DR=Byte;
while((SPIx->SR&SPI_I2S_FLAG_RXNE)==RESET);
return SPIx->DR;
}
void LCD_Writ_Bus(u8 da)
{
SPI_WriteByte(SPI1,da);
}
void LCD_WR_DATA8(u8 da)
{
LCD_RS_SET; //RS=1
LCD_Writ_Bus(da);
}
void LCD_WR_DATA(u16 da)
{
LCD_RS_SET;
LCD_Writ_Bus(da>>8);
LCD_Writ_Bus(da);
}
void LCD_WR_REG(u8 da)
{
LCD_RS_RESET;
LCD_Writ_Bus(da);
}
void LCD_WR_REG_DATA(u16 reg,int da)
{
LCD_WR_REG(reg);
LCD_WR_DATA(da);
}
<초기화코드>
void lcd_initial()
{
reset=0;
delay(100);
reset=1;
delay(100);
//------------------------------------------------------------------//
//-------------------Software Reset-------------------------------//
write_command(0x11);//Sleep out
delay(120);
//ST7735R Frame Rate
write_command(0xB1);
write_data(0x01);
write_data(0x2C);
write_data(0x2D);
write_command(0xB2);
write_data(0x01);
write_data(0x2C);
write_data(0x2D);
write_command(0xB3);
write_data(0x01);
write_data(0x2C);
write_data(0x2D);
write_data(0x01);
write_data(0x2C);
write_data(0x2D);
//------------------------------------End ST7735R Frame Rate-----------------------------------------//
write_command(0xB4);//Column inversion
write_data(0x07);
//------------------------------------ST7735R Power Sequence-----------------------------------------//
write_command(0xC0);
write_data(0xA2);
write_data(0x02);
write_data(0x84);
write_command(0xC1);
write_data(0xC5);
write_command(0xC2);
write_data(0x0A);
write_data(0x00);
write_command(0xC3);
write_data(0x8A);
write_data(0x2A);
write_command(0xC4);
write_data(0x8A);
write_data(0xEE);
//---------------------------------End ST7735R Power Sequence-------------------------------------//
write_command(0xC5);//VCOM
write_data(0x0E);
write_command(0x36);//MX, MY, RGB mode
write_data(0xC8);
//------------------------------------ST7735R Gamma Sequence-----------------------------------------//
write_command(0xe0);
write_data(0x02);
write_data(0x1c);
write_data(0x07);
write_data(0x12);
write_data(0x37);
write_data(0x32);
write_data(0x29);
write_data(0x2d);
write_data(0x29);
write_data(0x25);
write_data(0x2b);
write_data(0x39);
write_data(0x00);
write_data(0x01);
write_data(0x03);
write_data(0x10);
write_command(0xe1);
write_data(0x03);
write_data(0x1d);
write_data(0x07);
write_data(0x06);
write_data(0x2e);
write_data(0x2c);
write_data(0x29);
write_data(0x2d);
write_data(0x2e);
write_data(0x2e);
write_data(0x37);
write_data(0x3f);
write_data(0x00);
write_data(0x00);
write_data(0x02);
write_data(0x10);
write_command(0x2A);
write_data(0x00);
write_data(0x02);
write_data(0x00);
write_data(0x81);
write_command(0x2B);
write_data(0x00);
write_data(0x01);
write_data(0x00);
write_data(0xA0);
//------------------------------------End ST7735R Gamma Sequence-----------------------------------------//
write_command(0x3A);
write_data(0x05);
//write_command(0x3A);//65k mode
//write_data(0x05);
write_command(0x29);//Display on
}