跳到主要内容

RP2350

本章节包含以下部分,请按需阅读:

MicroPython 入门教程

初次接触 ESP32 MicroPython 开发,想要快速上手?我们为您准备了一套通用的 ESP32 MicroPython 入门教程

请注意:该教程使用 ESP32-S3-Zero 作为教学示例,所有硬件代码均基于其引脚布局。在动手实践前,建议您对照手中的开发板引脚图,确认引脚配置无误。

Pico 快速上手

获取 MicroPython 固件

获取 RP2350 PLUS 板载 MicroPython 固件。

0.96inch Transparent OLED 示例

安装 Thonny IDE

安装完成之后,第一次要配置语言和主板环境,由于我们是为了使用 Pico/Pico2,所以注意主板环境选择 Raspberry Pi 选项

0.96inch Transparent OLED 示例
0.96inch Transparent OLED 示例

示例程序

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.pySSD1312 初始化、SPI/I2C 通信、显存刷新及显示控制
demo.pyOLED 综合演示,包括文字、图形和点阵内容
cube.py旋转线框立方体演示
glyphs.py中文“微雪”的 32 × 41 单色点阵数据和绘制函数

硬件连接

接线前断开电源

OLED 的工作电压为 3.3 V。请勿将 VCC 接入 5 V 电源。

工程默认配置为四线 SPI,按下表接线:

0.96inch Transparent OLEDRP2350 PLUS
VCC3.3 V
GNDGND
DINGP11 / SPI1 TX
CLKGP10 / SPI1 SCK
CSGP9
DCGP8
RSTGP12
EN不连接

模块的 EN 引脚默认开启,本示例未使用该引脚。完成接线后,使用支持数据传输的 USB 线将 RP2350 PLUS 连接到电脑。

如需使用 I2C,请先将 OLED 模块背面的接口选择焊点切换至 I2C,再按下表接线:

0.96inch Transparent OLEDRP2350 PLUS
VCC3.3 V
GNDGND
DIN / SDAGP4 / I2C0 SDA
CLK / SCLGP5 / I2C0 SCL
RSTGP12
CS不连接
DC不连接
EN不连接

同时将 config.py 中的通信接口修改为:

BUS = "I2C"

I2C 的 SDA 和 SCL 需要上拉电阻;如果模块未集成上拉电阻,需要外接合适的上拉电阻。

代码分析

  • create_display():读取 config.py 中的 BUS,根据配置创建 SSD1312_SPISSD1312_I2C 对象;配置值不是 SPII2C 时抛出异常。
  • 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() 均为持续运行的循环,因此每次只能运行其中一个演示。

运行程序

  1. 为 RP2350 PLUS 安装适用的 MicroPython 固件,然后打开 Thonny。
  2. 在 Thonny 中选择 MicroPython (Raspberry Pi Pico) 解释器,并选择开发板对应的串口。
  3. main.pyconfig.pyssd1312.pydemo.pycube.pyglyphs.py 全部上传到开发板文件系统的根目录。
  4. 复位开发板或在 Thonny 中运行 main.py。初始化成功后,Shell 会输出:
SSD1312 initialized using SPI

使用 I2C 时,输出中的 SPI 会变为 I2C。上传文件时请保留原文件名,main.py 会在开发板启动后自动执行。

运行效果

默认将 DEMO 设置为 "oled" 后,OLED 按以下顺序循环显示:

顺序显示内容保持时间
1WAVESHARERP2350SSD1312 OLED 标题页2 秒
2中文“微雪”点阵2 秒
30.96 OLED 128x64 产品信息图2 秒
4星星、月牙、山峰和松树线稿3 秒
5RP2350、接口状态、电池图标和折线图组成的仪表盘5 秒
 0.96inch Transparent OLED 产品尺寸

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