RP2350
本章节包含以下部分,请按需阅读:
MicroPython 入门教程
初次接触 ESP32 MicroPython 开发,想要快速上手?我们为您准备了一套通用的 ESP32 MicroPython 入门教程。
- 第1节 搭建开发环境
- 第2节 基础知识
- 第3节 GPIO 数字输出/输入
- 第4节 ADC 模拟输入
- 第5节 PWM 输出
- 第6节 UART 通信
- 第7节 I2C 通信
- 第8节 SPI 通信
- 第9节 Wi-Fi 基础用法
- 第10节 网页服务器
- 第11节 蓝牙
- 第12节 综合项目
请注意:该教程使用 ESP32-S3-Zero 作为教学示例,所有硬件代码均基于其引脚布局。在动手实践前,建议您对照手中的开发板引脚图,确认引脚配置无误。
Pico 快速上手
获取 MicroPython 固件
获取 RP2350 PLUS 板载 MicroPython 固件。

安装 Thonny IDE
- 请参考 搭建 MicroPython 开发环境教程 安装 Thonny IDE
安装完成之后,第一次要配置语言和主板环境,由于我们是为了使用 Pico/Pico2,所以注意主板环境选择 Raspberry Pi 选项


示例程序
Transparent_Test
程序说明
- 本示例使用 RP2350 PLUS 和 MicroPython,驱动分辨率为 128 × 64 的 SSD1312 OLED。工程默认使用四线 SPI,也支持将 OLED 模块切换为 I2C 接口。
- SPI 默认使用 SPI1,工作在 SPI 模式 0,时钟频率为 4 MHz。OLED 只接收数据,无需连接 MISO。
- I2C 默认使用 I2C0,时钟频率为 400 kHz,7 位地址为
0x3C。模块的硬件接口选择必须与config.py中的BUS配置一致。 - 驱动类继承 MicroPython 的
framebuf.FrameBuffer,使用 1024 字节显存保存 128 × 64 单色画面,并提供清屏、刷新、点、线、矩形、文本、对比度、反色和显示开关等接口。 - 默认运行 OLED 综合演示,依次显示标题页、中文“微雪”、产品信息图、夜景线稿和仪表盘。工程还提供持续旋转的线框立方体演示,可在
config.py中切换。
工程文件说明:
| 文件 | 说明 |
|---|---|
main.py | 程序入口;根据配置创建 SPI 或 I2C 显示对象,并启动所选演示 |
config.py | 通信接口、引脚、速率、I2C 地址和演示程序配置 |
ssd1312.py | SSD1312 初始化、SPI/I2C 通信、显存刷新及显示控制 |
demo.py | OLED 综合演示,包括文字、图形和点阵内容 |
cube.py | 旋转线框立方体演示 |
glyphs.py | 中文“微雪”的 32 × 41 单色点阵数据和绘制函数 |
硬件连接
接线前断开电源
OLED 的工作电压为 3.3 V。请勿将 VCC 接入 5 V 电源。
工程默认配置为四线 SPI,按下表接线:
| 0.96inch Transparent OLED | RP2350 PLUS |
|---|---|
| VCC | 3.3 V |
| GND | GND |
| DIN | GP11 / SPI1 TX |
| CLK | GP10 / SPI1 SCK |
| CS | GP9 |
| DC | GP8 |
| RST | GP12 |
| EN | 不连接 |
模块的 EN 引脚默认开启,本示例未使用该引脚。完成接线后,使用支持数据传输的 USB 线将 RP2350 PLUS 连接到电脑。
如需使用 I2C,请先将 OLED 模块背面的接口选择焊点切换至 I2C,再按下表接线:
| 0.96inch Transparent OLED | RP2350 PLUS |
|---|---|
| VCC | 3.3 V |
| GND | GND |
| DIN / SDA | GP4 / I2C0 SDA |
| CLK / SCL | GP5 / I2C0 SCL |
| RST | GP12 |
| CS | 不连接 |
| DC | 不连接 |
| EN | 不连接 |
同时将 config.py 中的通信接口修改为:
BUS = "I2C"
I2C 的 SDA 和 SCL 需要上拉电阻;如果模块未集成上拉电阻,需要外接合适的上拉电阻。
代码分析
create_display():读取config.py中的BUS,根据配置创建SSD1312_SPI或SSD1312_I2C对象;配置值不是SPI或I2C时抛出异常。SSD1312._initialize():先通过 GP12 对 OLED 进行硬件复位,再发送 SSD1312 初始化命令,清除显示 RAM 后开启显示。SSD1312.show():将 128 × 64 帧缓冲区分成 8 页写入 OLED,每页传输 128 字节显示数据。demo.run():循环绘制标题页、中文点阵、产品信息图、夜景线稿和仪表盘,并在每次绘制后调用show()刷新屏幕。glyphs.draw_text():逐位解析 32 × 41 单色点阵数据,用于显示中文“微雪”。cube.run():对立方体的 8 个顶点进行旋转和透视投影,再连接 12 条边,约每 20 ms 绘制并刷新一帧。
在 config.py 中通过 DEMO 选择演示程序:
# OLED 综合演示
DEMO = "oled"
# 旋转线框立方体演示
# DEMO = "cube"
demo.run() 和 cube.run() 均为持续运行的循环,因此每次只能运行其中一个演示。
运行程序
- 为 RP2350 PLUS 安装适用的 MicroPython 固件,然后打开 Thonny。
- 在 Thonny 中选择 MicroPython (Raspberry Pi Pico) 解释器,并选择开发板对应的串口。
- 将
main.py、config.py、ssd1312.py、demo.py、cube.py和glyphs.py全部上传到开发板文件系统的根目录。 - 复位开发板或在 Thonny 中运行
main.py。初始化成功后,Shell 会输出:
SSD1312 initialized using SPI
使用 I2C 时,输出中的 SPI 会变为 I2C。上传文件时请保留原文件名,main.py 会在开发板启动后自动执行。
运行效果
默认将 DEMO 设置为 "oled" 后,OLED 按以下顺序循环显示:
| 顺序 | 显示内容 | 保持时间 |
|---|---|---|
| 1 | WAVESHARE、RP2350 和 SSD1312 OLED 标题页 | 2 秒 |
| 2 | 中文“微雪”点阵 | 2 秒 |
| 3 | 0.96 OLED 128x64 产品信息图 | 2 秒 |
| 4 | 星星、月牙、山峰和松树线稿 | 3 秒 |
| 5 | RP2350、接口状态、电池图标和折线图组成的仪表盘 | 5 秒 |

将 DEMO 设置为 "cube" 后,OLED 会持续显示绕竖直方向旋转的线框立方体,程序约每 20 ms 刷新一帧。