TFT1.44寸屏ST7735S屏幕使用-stm32f103c8t6
K :背景灯
RESET:tft复位
RS:控制线(数据或者命令)
SDA:数据线(SPI时作为MOSI)
SCK:时钟线
IOVCC:数据有效脚,写数据或者是命令时应该拉低
1.LCD初始化
/初始化lcd
void LCD_Init(void)
{
SPIGPIO_Init();
SPILCD_RST_RESET ; //LCD_RST=0 //SPI接口复位
HAL_Delay(20); // delay 20 ms
SPILCD_RST_SET ; //LCD_RST=1
HAL_Delay(50);
lcddev.width=128;
lcddev.height=128;
lcddev.wramcmd=0X2C;
lcddev.setxcmd=0X2A;
lcddev.setycmd=0X2B;
LCD_WR_REG(0x11);//Sleep exit
HAL_Delay(100);
//ST7735R Frame Rate
LCD_WR_REG(0xB1); //In Normal Mode (Full Colors) 全屏模式
LCD_WR_DATA8(0x05); //设置 RTNA Set 1-line Period 一行周期
LCD_WR_DATA8(0x3C); //设置 FPA: Front Porch
LCD_WR_DATA8(0x3C); //设置 BPA: Back Porch
//Frame rate=fosc/((RTNA x 2 + 40) x (LINE + FPA + BPA +2))
//其中 fosc = 850kHz
/* Set the frame frequency of the Idle mode. */
LCD_WR_REG(0xB2); //In Idle Mode (8-colors)
LCD_WR_DATA8(0x05);
LCD_WR_DATA8(0x3C);
LCD_WR_DATA8(0x3C);
/* Set the frame frequency of the Partial mode/ full colors. */
LCD_WR_REG(0xB3);
LCD_WR_DATA8(0x05);
LCD_WR_DATA8(0x3C);
LCD_WR_DATA8(0x3C);
LCD_WR_DATA8(0x05);
LCD_WR_DATA8(0x3C);
LCD_WR_DATA8(0x3C);
//------------------------------------End ST7735S Frame Rate-----------------------------------------//
LCD_WR_REG(0xB4); //Display Inversion Control 显示反转控制
LCD_WR_DATA8(0x07); //LCD_ST7735S_WR_8DATA(0x03); 原来为3,改为7
// 低三位从高到低,分别为 full colors normal mode 、Idle mode 、
// full Colors partial mode 的 点反转 或 列反转 ,1为列反转
LCD_WR_REG(0xC0); //Power Control Setting 电源控制设置
LCD_WR_DATA8(0x28);
LCD_WR_DATA8(0x08);
LCD_WR_DATA8(0x84);
LCD_WR_REG(0xC1);
LCD_WR_DATA8(0XC0);
LCD_WR_REG(0xC2);
LCD_WR_DATA8(0x0C);
LCD_WR_DATA8(0x00);
LCD_WR_REG(0xC3);
LCD_WR_DATA8(0x8C);
LCD_WR_DATA8(0x2A);
LCD_WR_REG(0xC4);
LCD_WR_DATA8(0x8A);
LCD_WR_DATA8(0xEE);
//---------------------------------End ST7735S Power Sequence-------------------------------------//
LCD_WR_REG(0xC5); // VCOM 电压配置
LCD_WR_DATA8(0x0C); // -0.725
//------------------------------------ST7735S Gamma Sequence-----------------------------------------//
LCD_WR_REG(0xE0);
LCD_WR_DATA8(0x05);
LCD_WR_DATA8(0x1A);
LCD_WR_DATA8(0x0C);
LCD_WR_DATA8(0x0E);
LCD_WR_DATA8(0x3A);
LCD_WR_DATA8(0x34);
LCD_WR_DATA8(0x2D);
LCD_WR_DATA8(0x2F);
LCD_WR_DATA8(0x2D);
LCD_WR_DATA8(0x2A);
LCD_WR_DATA8(0x2F);
LCD_WR_DATA8(0x3C);
LCD_WR_DATA8(0x00);
LCD_WR_DATA8(0x01);
LCD_WR_DATA8(0x02);
LCD_WR_DATA8(0x10);
LCD_WR_REG(0xE1);
LCD_WR_DATA8(0x04);
LCD_WR_DATA8(0x1B);
LCD_WR_DATA8(0x0D);
LCD_WR_DATA8(0x0E);
LCD_WR_DATA8(0x2D);
LCD_WR_DATA8(0x29);
LCD_WR_DATA8(0x24);
LCD_WR_DATA8(0x29);
LCD_WR_DATA8(0x28);
LCD_WR_DATA8(0x26);
LCD_WR_DATA8(0x31);
LCD_WR_DATA8(0x3B);
LCD_WR_DATA8(0x00);
LCD_WR_DATA8(0x00);
LCD_WR_DATA8(0x03);
LCD_WR_DATA8(0x12);
//------------------------------------End ST7735S Gamma Sequence-----------------------------------------//
LCD_WR_REG(0x3A); //65k mode
LCD_WR_DATA8(0x05);
LCD_WR_REG(0x29); //开显示 Display on
}
//写寄存器函数
//regval:寄存器值
void LCD_WR_REG(uint16_t regval)
{
SPILCD_RS_RESET;
SPILCD_CS_RESET; //LCD_CS=0
SPI_WriteByte(&SpiHandle,regval&0x00FF);
SPILCD_CS_SET; //LCD_CS=1
}
/*写一个字节*/
uint8_t SPI_WriteByte(SPI_HandleTypeDef* SPI,uint8_t Byte)
{
HAL_SPI_Transmit(SPI,&Byte,1,0xFFFF);
return 0;
}
void LCD_WR_DATA8(uint8_t da) //写8位数据
{
SPILCD_RS_SET;
SPILCD_CS_RESET; //LCD_CS=0
SPI_WriteByte(&SpiHandle,da);
SPILCD_CS_SET; //LCD_CS=1
}
//画点
//x,y:坐标
//POINT_COLOR:此点的颜色
void LCD_DrawPoint(uint16_t x,uint16_t y)
{
LCD_SetCursor(x,y); //设置光标位置
LCD_WriteRAM_Prepare(); //开始写入GRAM
LCD_WR_DATA(POINT_COLOR); //POINT_COLOR写入颜色RGB
}
SPI初始化
void SPI_Init(void)
{
SpiHandle.Instance = SPIx;
SpiHandle.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4;
SpiHandle.Init.Direction = SPI_DIRECTION_2LINES;
SpiHandle.Init.CLKPhase = SPI_PHASE_2EDGE;
SpiHandle.Init.CLKPolarity = SPI_POLARITY_HIGH;
SpiHandle.Init.DataSize = SPI_DATASIZE_8BIT;
SpiHandle.Init.FirstBit = SPI_FIRSTBIT_MSB;
SpiHandle.Init.TIMode = SPI_TIMODE_DISABLE;
SpiHandle.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
SpiHandle.Init.CRCPolynomial = 7;
SpiHandle.Init.NSS = SPI_NSS_SOFT;
SpiHandle.Init.Mode = SPI_MODE_MASTER;
//SpiHandle.Init.Mode = SPI_MODE_SLAVE;
HAL_SPI_Init(&SpiHandle);
__HAL_SPI_ENABLE(&SpiHandle);
}
显示效果
整个工程链接:https://download.csdn.net/download/qq_39061579/15655245