1. 项目背景与核心价值
去年在捣鼓一个便携式气象站项目时,我需要为树莓派Pico找块省电又便宜的显示屏。当时市面上常见的I2C屏要么刷新率太低,要么尺寸太小,直到发现了ST7735S这款SPI接口的1.8寸LCD——160x128分辨率、IPS面板、不到20元的售价,简直就是为嵌入式开发量身定制的。但实际用起来发现,官方文档里那些寄存器配置参数看得人头晕,网上找到的例程又多是针对Arduino平台的。经过两周的折腾,终于摸透了这套驱动方案的所有门道,现在把完整实现过程分享给大家。
这块屏的优势很明显:SPI接口比I2C快5倍以上,支持硬件刷新率调节,自带显存能实现局部刷新。实测在Pico上跑满60帧时,CPU占用率还不到15%。更妙的是ST7735S的IPS面板可视角度达到178°,比普通TFT屏强不少。下面我会从硬件连线到软件优化,一步步拆解驱动过程中的所有技术细节。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件连接与电路设计
2.1 引脚定义对照
ST7735S的典型引脚定义如下表所示。注意不同厂商的板子可能标注不同名称,但功能是一致的:
| 屏引脚标号 | 实际功能 | Pico推荐引脚 | 备注 |
|---|---|---|---|
| GND | 地线 | GND | 必须共地 |
| VCC | 电源(3.3V) | 3V3 | 绝对不可接5V |
| SCL | SPI时钟线 | GP2 | 硬件SPI0_SCK |
| SDA | SPI数据线 | GP3 | 硬件SPI0_TX |
| RES | 复位信号 | GP4 | 低电平有效 |
| DC | 数据/命令选择 | GP5 | 高电平数据/低电平命令 |
| CS | 片选信号 | GP1 | 低电平有效 |
| BLK | 背光控制 | GP6 | 可接PWM调光 |
重要提示:市面上有些模块的VCC标为5V,但实际芯片工作电压是3.3V!这些模块内部自带LDO稳压,如果误接到Pico的5V引脚可能导致通信异常。
2.2 硬件SPI配置要点
Pico有两个硬件SPI控制器,我们选用SPI0以获得最佳性能。关键配置参数如下:
python复制spi = machine.SPI(0,
b
