STM32驱动ST7735 TFT-LCD实战:RGB565与SPI裸机编程

1. TFT-LCD 显示模块工程解析:基于 STM32 的 1.8 寸 ST7735 驱动实践

在嵌入式人机交互系统中,显示单元是信息呈现的核心通道。当项目需求从单色字符显示升级为彩色图形界面时,TFT-LCD 模块便成为不可回避的技术选型。本节将聚焦于一款广泛应用的 1.8 寸 TFT-LCD 模块(驱动芯片 ST7735),深入剖析其硬件接口、色彩模型、寄存器配置逻辑及软件驱动框架。所有内容均基于真实工程实践,不依赖任何特定开发环境或抽象层,可直接移植至裸机或 HAL 库项目。

1.1 硬件拓扑与电气特性

该模块采用标准 SPI 接口,物理上为 8-pin 引脚布局,其定义如下:

引脚名 功能说明 电平要求 连接目标
VCC 模块供电正极 3.3V 或 5V(兼容) MCU 电源域
GND 地线 0V MCU 公共地
SCL / SCK SPI 时钟线 3.3V LVTTL MCU SPIx_SCK
SDA / MOSI SPI 主机输出/从机输入数据线 3.3V LVTTL MCU SPIx_MOSI
RES / RST 复位信号(低电平有效) 3.3V LVTTL MCU GPIO(推挽输出)
DC / A0 数据/命令选择线 3.3V LVTTL MCU GPIO(推挽输出)
CS / NSS 片选信号(低电平有效) 3.3V LVTTL MCU GPIO(推挽输出)
BLK / LED 背光控制线 3.3V LVTTL(高电平点亮) MCU GPIO(推挽输出)

需特别注意两点工程细节:第一,模块标称工作电压为 3.3V,但内部 LDO 设计使其可直接接入 5V 电源,简化了供电设计;第二,BLK 引脚并非 PWM 调光接口,而是数字使能信号,因此背光亮度为全开/全关两级控制。若需实现灰度调节,必须外置 PWM 电路驱动 LED 串。

模块核心参数决定了底层驱动的数据吞吐能力:
- 分辨率 :128 × 160 像素(非字幕所述 128×106,此为典型 ST7735S 屏幕规格)
- 驱动 IC :ST7735 或 ST7735S(二者寄存器映射高度兼容,仅部分初始化序列存在微小差异)
- 色彩深度 :支持 RGB565(16-bit)、RGB666(18-bit)、RGB888(24-bit)模式,本方案采用主流的 RGB565
- 典型工作电流 :30mA(不含背光),背光电流另计,总功耗约 80–120mA(取决于背光亮度)

1.2 RGB565 色彩模型与像素编码

TFT-LCD 的彩色显示本质是空间混色原理的应用。每个像素点由红(R)、绿(G)、蓝(B)三个子像素构成,通过独立控制其亮度比例,合成人眼感知的任意颜色。RGB565 是嵌入式领域最常用的紧凑型编码格式,其位分配如下:

Bit:  15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
      R R R R R G G G G G G B B B B B
      ↑       ↑           ↑
      5-bit   6-bit       5-bit
  • 红色分量(R) :占用最高 5 位(bit15–bit11),取值范围 0–31(2⁵)
  • 绿色分量(G) :占用中间 6 位(bit10–bit5),取值范围 0–63(2⁶)
  • 蓝色分量(B) :占用最低 5 位(bit4–bit0),取值范围 0–31(2⁵)

由此,一个 16-bit 的 uint16_t 变量即可完整描述一个像素点的颜色。例如:
- 纯白 :R=31, G=63, B=31 → 0b1111111111111111 = 0xFFFF
- 纯黑 :R=0, G=0, B=0 → 0b0000000000000000 = 0x0000
- 纯红 :R=31, G=0, B=0 → 0b111110000000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值