ST7735S 是一款由台湾晶宏科技(Sitronix Technology Corp.)生产的单芯片 TFT LCD 驱动控制器。它被广泛应用于各种需要彩色显示功能的中小型电子设备中,以其高性价比、低功耗和易于集成的特点而备受工程师和爱好者的青睐。
我使用的是一块来自淘宝上购买的 1.8 寸,128*160 分辨率,SPI 协议的 TFT_LCD 屏幕模块,店铺链接 台湾铼宝[OLED]

| 项目 | 参数 |
|---|---|
| 尺寸 | 1.8 英寸 TFT LCD |
| 分辨率 | 128RGB * 160 Dot-matrix |
| 通信接口 | SPI-4 wire interface |
| 驱动芯片 | ST7735S |
| 颜色 | 全彩 |
| 外形尺寸 | 34.00 x 56 x 3.65 (mm) |
| 显示区域 | 28.03 (W) * 35.04 (H) |
| 像素尺寸 | 0.219 (W) * 0.219 (H) |
| 工作电压 | 3.3V |
| 工作电流 | 30mA |
| 管脚数量 | 8Pin(2.54mm 间距排针) |
| 视角方向 | 12 点方向 |
| 工作温度 | -20 度到 70 度 |
| 序号 | 符号 | 说明 |
|---|---|---|
| 1 | GND | 电源地 |
| 2 | VCC | 电源正 3.3V |
| 3 | SCL | SPI 时钟线(与单片机 SPI_CLK 对接) |
| 4 | SDA | SPI 数据线(与单片机硬件 SPI_MOSI 对接) |
| 5 | RES | 复位管脚 |
| 6 | DC | 数据 / 命令选择引脚 |
| 7 | CS | SPI 片选 |
| 8 | BL | 背光控制开关,默认可不接 |
以上信息来自 台湾铼宝[OLED]
使用 afiskon 大佬的开源库 stm32-st7735,该库将 Adafruit 的 ST7735 库移植到了 STM32 平台上。 作者原文链接:https://eax.me/stm32-st7735/,在使用之前推荐阅读。

在 st7735.h 文件中,修改 SPI 句柄以及 GPIO 引脚定义:

在该文件中,作者提供了一些屏幕参数预设,可以根据你的屏幕规格取消对应宏定义的注释:

对于我购买的这款屏幕,配置如下:

该宏定义表示当前使用的是 160×128 分辨率的屏幕。
定义屏幕的实际显示区域尺寸。
定义显示内容的起始偏移量,坐标原点为左上角。
此宏定义了屏幕的旋转方向和颜色顺序:
void ST7735_Init(void)
void ST7735_DrawPixel(uint16_t x, uint16_t y, uint16_t color)
x, y 为坐标,color 为 16 位 RGB565 颜色。void ST7735_FillRectangleFast(uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t color)
void ST7735_WriteString(uint16_t x, uint16_t y, const char* str, FontDef font, uint16_t color, uint16_t bgcolor)
fonts.h 中选择。void ST7735_InvertColors(bool invert)
void ST7735_SetGamma(uint8_t gamma)
图中是我使用 ST7735_DrawImage() 函数将一张 128*160 的图片显示到 LCD 屏幕上的实拍效果。
推荐图片取模软件:【硬件图片取模软件!支持彩色/阈值调整】

#define ST7735_IS_160X128 1
#define ST7735_WIDTH 128
#define ST7735_HEIGHT 160
#define ST7735_XSTART 2
#define ST7735_YSTART 1
#define ST7735_ROTATION (ST7735_MADCTL_MX | ST7735_MADCTL_MY | ST7735_MADCTL_RGB)