1.8寸TFT LCD128X160 ST7735S SPI串口屏驱动示例


  • 🌼1.8寸TFT LCD128X160 ST7735S SPI串口屏

📚屏幕驱动资料1

  • 以下是由中景园提供的,里面包含了:

ESP32 C3 tft_液晶屏

链接:https://pan.baidu.com/s/10G6apA8plumMz1A8FLoGhg
提取码:1111
由于购买的是合宙的1.8寸TFT LCD128X160 ST7735S SPI串口屏随同ESP32C3一起购买的,价格是9.9RMB,比起中景园的相同规格的屏幕是16.5RMB,性价比还是很高的。

🛠汉字取模方式和软件

  • 🔧PCtoLCD2002软件
  • 🔨取模方式
  • 🌿取模的汉字代码放到:lcdfont.h对应位置,可以参照已有的取模汉字。

✅以STM32F103为例

  • 👉🏻关于横向和纵向原点刷不到的白边宽,是因为源代码在显示函数中添加了偏移,修正的方法就是将其偏移量去除掉。
/******************************************************************************
      函数说明:设置起始和结束地址
      入口数据:x1,x2 设置列的起始和结束地址
                y1,y2 设置行的起始和结束地址
      返回值:  无
******************************************************************************/
void LCD_Address_Set(u16 x1,u16 y1,u16 x2,u16 y2)
{
	if(USE_HORIZONTAL==0)
	{
		LCD_WR_REG(0x2a);//列地址设置
		LCD_WR_DATA(x1);
		LCD_WR_DATA(x2);
		LCD_WR_REG(0x2b);//行地址设置
		LCD_WR_DATA(y1);
		LCD_WR_DATA(y2);
		LCD_WR_REG(0x2c);//储存器写
	}
	else if(USE_HORIZONTAL==1)
	{
		LCD_WR_REG(0x2a);//列地址设置
		LCD_WR_DATA(x1);
		LCD_WR_DATA(x2);
		LCD_WR_REG(0x2b);//行地址设置
		LCD_WR_DATA(y1);
		LCD_WR_DATA(y2);
		LCD_WR_REG(0x2c);//储存器写
	}
	else if(USE_HORIZONTAL==2)
	{
		LCD_WR_REG(0x2a);//列地址设置
		LCD_WR_DATA(x1);
		LCD_WR_DATA(x2);
		LCD_WR_REG(0x2b);//行地址设置
		LCD_WR_DATA(y1);
		LCD_WR_DATA(y2);
		LCD_WR_REG(0x2c);//储存器写
	}
	else
	{
		LCD_WR_REG(0x2a);//列地址设置
		LCD_WR_DATA(x1);
		LCD_WR_DATA(x2);
		LCD_WR_REG(0x2b);//行地址设置
		LCD_WR_DATA(y1);
		LCD_WR_DATA(y2);
		LCD_WR_REG(0x2c);//储存器写
	}
}

ESP32 C3 tft_ESP32 C3 tft_02

  • 📑引脚接线
//              GND   电源地
//              VCC   3.3v电源
//              SCL   PA0(SCLK)
//              SDA   PA1(MOSI)
//              RES   PA2
//              DC    PA3
//              CS    PA4
//              BLK   PA5

✨上面的资料代码中提供了汉字字号:16、 24、 32、三种。

  • 02-1.8LCD显示屏STM32F103C8T6_SPI例程
#include "delay.h"
#include "sys.h"
#include "led.h"
#include "lcd_init.h"
#include "lcd.h"
#include "pic.h"
int main(void)
{
	float t=0;
	delay_init();
	LED_Init();//LED初始化
	LCD_Init();//LCD初始化
	LCD_Fill(0,0,LCD_W,LCD_H,WHITE);
	LED=0;
	while(1)
	{
		LCD_ShowChinese(0,0,(u8 *)"单片机学习",RED,WHITE,24,0);
		LCD_ShowString(24,30,(u8 *)"LCD_W:",RED,WHITE,16,0);
		LCD_ShowIntNum(72,30,LCD_W,3,RED,WHITE,16);
		LCD_ShowString(24,50,(u8 *)"LCD_H:",RED,WHITE,16,0);
		LCD_ShowIntNum(72,50,LCD_H,3,RED,WHITE,16);
		LCD_ShowFloatNum1(20,80,t,4,RED,WHITE,16);
		t+=0.11;
		LCD_ShowPicture(65,80,40,40,gImage_1);
	}
}

🌼屏幕驱动资料2

  • 1.8inch SPI ST7735S SKU: MSP1803
  • 📌屏幕资料和参考资料:http://www.lcdwiki.com/zh
  • 也提供了软硬件驱动的示例代码,需要注意,其中的引脚定义和厂家的名称有点区别。
//=======================================液晶屏数据线接线==========================================//
//本模块默认数据总线类型为SPI总线
//     LCD模块                STM32单片机    
//       SDA         接          PB15         //液晶屏SPI总线数据写信号
//=======================================液晶屏控制线接线==========================================//
//     LCD模块 					      STM32单片机 
//       LED         接          PB9          //液晶屏背光控制信号,如果不需要控制,接5V或3.3V
//       SCK         接          PB13         //液晶屏SPI总线时钟信号
//      A0/DC        接          PB10         //液晶屏数据/命令控制信号
//    RES/RESET      接          PB12         //液晶屏复位控制信号
//       CS          接          PB11         //液晶屏片选控制信号