使用 MicroPython 的 Seeed Studio XIAO RP2040
MicroPython 简介
MicroPython 是一个带有部分本地代码编译功能的 Python 解释器。它提供了 Python 3.5 功能的一个子集,专为嵌入式处理器和受限系统实现。它与 CPython 不同,你可以在这里阅读更多差异说明。

入门指南
首先,我们将把 Seeed Studio XIAO RP2040 系列连接到电脑,并从 MicroPython 上传一个简单的代码,以检查开发板是否工作正常。
硬件准备
- Seeed Studio XIAO RP2040 或 Seeed Studio XIAO RP2040 Plus x1
- Type-C 线 x1
- 电脑 x1
将 XIAO RP2040 系列连接到电脑
- 步骤 1. 按住 BOOT 按钮不放,然后通过 Type-C 线将 Seeed Studio XIAO RP2040 系列连接到电脑。如果一切正常,电脑上会显示一个名为 RPI-RP2 的磁盘。

-
步骤 2. 烧录固件
只需前往官网下载最新固件,然后将
.uf2文件拖放到 RPI-RP2 磁盘中即可完成固件烧录。
软件准备
- 步骤 1. 根据你的操作系统下载并安装最新版本的 Thonny editor

-
步骤 2. 启动 Thonny
-
步骤 3. 点击 Tools-->Options 打开设置。

- 步骤 4. 选择 Interpreter 选项卡,将设备设置为 MicroPython(generic),端口设置为 Board CDC @ Port

步骤 5. 版本信息会显示在 Shell 中。

步骤 6. 依次点击 Files -> New,粘贴下面的代码,然后运行脚本。
from machine import Pin, Timer
led = Pin(25, Pin.OUT)
Counter = 0
Fun_Num = 0
def fun(tim):
global Counter
Counter = Counter + 1
print(Counter)
led.value(Counter%2)
tim = Timer(-1)
tim.init(period=1000, mode=Timer.PERIODIC, callback=fun)
- 板载 LED 将以 1 秒为间隔闪烁。

- 附加资源部分包含适用于 XIAO RP2040 Plus 的 MicroPython 固件和相关示例。你可以按照 XIAO RP2040 教程来使用这些示例,但请务必替换并修改相应的引脚。
- 如需查看 XIAO RP2040 系列之间的差异,请参考 XIAO RP2040 系列引脚概览
XIAO RP2040 系列引脚
| MicroPython 引脚名称 | XIAO RP2040 GPIO | XIAO RP2040 Plus GPIO | ADC | 功能 |
|---|---|---|---|---|
| D0 / A0 | GPIO26 | GPIO26 | 0 | GPIO,ADC0 |
| D1 / A1 | GPIO27 | GPIO27 | 1 | GPIO,ADC1 |
| D2 / A2 | GPIO28 | GPIO28 | 2 | GPIO,ADC2 |
| D3 / A3 | GPIO29 | GPIO29 | 3 | GPIO,ADC3 |
| D4 / SDA | GPIO6 | GPIO6 | — | GPIO,I2C SDA |
| D5 / SCL | GPIO7 | GPIO7 | — | GPIO,I2C SCL |
| D6 / TX | GPIO0 | GPIO0 | — | GPIO,UART TX |
| D7 / RX | GPIO1 | GPIO1 | — | GPIO,UART RX |
| D8 / SCK | GPIO2 | GPIO2 | — | GPIO,SPI SCK |
| D9 / MISO | GPIO4 | GPIO4 | — | GPIO,SPI MISO |
| D10 / MOSI | GPIO3 | GPIO3 | — | GPIO,SPI MOSI |
| NEOPIXEL | GPIO12 | GPIO12 | — | WS2812 NeoPixel 数据 |
| NEOPIXEL_POWER / NEO_PWR / RGB_EN | GPIO11 | GPIO11 | — | NeoPixel 供电使能(Plus 上为 RGB_EN) |
| LED_G / D23 | GPIO16 | GPIO16 | — | RGB 绿灯;Plus D23 |
| LED_R / D24 | GPIO17 | GPIO17 | — | RGB 红灯;Plus D24 |
| LED_B / LED | GPIO25 | GPIO25 | — | RGB 蓝灯 / 用户 LED |
| D12 | — | GPIO18 | — | Plus 扩展 GPIO |
| D13 / SCL1 | — | GPIO21 | — | Plus I2C1 SCL |
| D14 / SDA1 | — | GPIO20 | — | Plus I2C1 SDA |
| D15 | — | GPIO19 | — | Plus 扩展 GPIO |
| D16 | — | GPIO22 | — | Plus 扩展 GPIO |
| D17 | — | GPIO23 | — | Plus 扩展 GPIO |
| D19 | — | GPIO5 | — | Plus 扩展 GPIO |
| D20 | — | GPIO13 | — | Plus 扩展 GPIO |
| D21 | — | GPIO14 | — | Plus 扩展 GPIO |
| D22 | — | GPIO15 | — | Plus 扩展 GPIO |
| D25 | — | GPIO10 | — | Plus 扩展 GPIO |
| D26 | — | GPIO9 | — | Plus 扩展 GPIO |
| D27 | — | GPIO8 | — | Plus 扩展 GPIO |
| BAT_EN | — | GPIO24 | — | Plus 电池供电使能 |
点亮 Seeed Studio XIAO RP2040 上的 RGB LED
Seeed Studio XIAO RP2040 上配备了一个 RGB LED,我们将通过 MicroPython 将其点亮。由于需要第三方库,因此我们首先需要添加一个额外的库。
-
步骤 1. 下载 ws2812.py 库,并用 Thonny 打开。
-
步骤 2. 点击 File-->Save as 并保存该库。

选择 Raspberry Pi Pico 作为保存位置。

确保保存的文件名为 ws2812.py,否则将无法正常工作。

- 步骤 3. 将以下代码复制到 Thonny 中。
from ws2812 import WS2812
import utime
import machine
power = machine.Pin(11,machine.Pin.OUT)
power.value(1)
BLACK = (0, 0, 0)
RED = (255, 0, 0)
YELLOW = (255, 150, 0)
GREEN = (0, 255, 0)
CYAN = (0, 255, 255)
BLUE = (0, 0, 255)
PURPLE = (180, 0, 255)
WHITE = (255, 255, 255)
COLORS = (BLACK, RED, YELLOW, GREEN, CYAN, BLUE, PURPLE, WHITE)
led = WS2812(12,1)#WS2812(pin_num,led_count)
while True:
print("Beautiful color")
for color in COLORS:
led.pixels_fill(color)
led.pixels_show()
utime.sleep(0.2)
- 步骤 4. 点击 “Run current script” 按钮上传代码。第一次运行时,Thonny 会询问你要将代码文件保存在哪里,选择 This Computer 或 Raspberry Pi Pico 都可以。

如果一切正常,你会看到 RGB LED 变换并闪烁灯光。同时,文本 “Beautiful Color” 的输出也会显示在 Shell 中。

通过 IIC 将 Seeed Studio XIAO RP2040 与显示屏连接
在本项目中,我们将通过 IIC 接口连接 Grove - OLED Display 0.96" (SSD1315),以演示 Seeed Studio XIAO RP2040 上的 IIC 功能。
硬件连接

-
步骤 1. 下载 ssd1306.py 库,并用 Thonny 打开。
-
步骤 2. 点击 "File-->Save as" 并将该库保存到 "Raspberry Pi Pico" 中

选择 "Raspberry Pi Pico" 作为保存位置。

确保保存的文件名为 "ssd1306.py",否则将无法正常工作。

- 步骤 3. 将以下代码复制到 Thonny 中。
from ssd1306 import SSD1306_I2C
from machine import Pin, I2C
from time import sleep
i2c = I2C(1, scl=Pin(7), sda=Pin(6), freq=200000)#Grove - OLED Display 0.96" (SSD1315)
oled = SSD1306_I2C(128, 64, i2c)
while True:
oled.fill(0)#clear
oled.text("Hello,World!",0,0)
oled.show()
#sleep(0.5)
- 步骤 4. 点击 “Run current script” 按钮上传代码。第一次运行时,Thonny 会询问你要将代码文件保存在哪里,选择 This Computer 或 Raspberry Pi Pico 都可以。

如果一切正常,你会看到屏幕上显示文本 “Hello,World!”。

MicroPython 设备控制台
我们的合作伙伴 Neil 使用 MicroPython 为 XIAO 编写了一个命令行控制台程序。通过这个程序,你可以轻松上传、下载和删除文件。我们感谢他对 XIAO 的贡献!
其他资源
这里提供了一些额外的库和示例代码:
技术支持与产品讨论
感谢您选择我们的产品!我们将为您提供多种支持,以确保您在使用我们产品时的体验尽可能顺畅。我们提供了多种沟通渠道,以满足不同的偏好和需求。