Skip to main content

wokwi-pi-pico参考

Raspberry Pi Pico,RP2040微控制器板,具有双核ARM Cortex-M0+处理器,264k内部RAM,灵活可编程I/O(PIO)功能。

Raspberry Pi Pico

引脚名称

引脚GP0到GP22是数字GPIO引脚。引脚GP26、GP27和GP28是具有模拟输入功能的数字GPIO引脚。

NameDescriptionAnalog input channel
GP0 … GP22Digital GPIO pins (0 to 22)
GP26Digital GPIO pin 260
GP27Digital GPIO pin 271
GP28Digital GPIO pin 282
GND.1 … GND.8Ground pins *
VSYS, VBUS, 3V3Positive power supply
TP4 †Digital GPIO pin 23
TP5 †Digital GPIO pin 25 + LED

* 接地引脚的物理引脚编号为3、8、13、18、23、28、33和38。
† 这些引脚不会出现在可视化图表编辑器中,但您可以在diagram.json文件中使用它们。

引脚3V3_EN / RUN / ADC_VREF在模拟中不可用,因此从表中删除。

板载led

Raspberry Pi Pico有一个板载LED,连接到GPIO PIN 25。当引脚被推高时,LED会点亮。

您还可以使用LED_BUILTIN常量在Arduino代码中引用LED:

pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);

有关完整的代码示例,请参阅Blink

仿真功能

Raspberry Pi Pico使用RP2040js Library 模拟。本表总结了仿真功能的现状:

外设状态注意
Processor core✔️Only a single core is simulated
GPIO✔️
PIO✔️PIO Debugger available
USB🟡USB CDC (Serial) supported, see Serial Monitor below
UART✔️
I2C✔️Master mode only
SPI✔️Master mode only
PWM✔️
DMA✔️Only for the PIO peripheral
Timer✔️Pausing the timer not implemented yet
ARM SysTick Timer🟡Partial implementation
Watchdog
RTC
ADC + Temp sensor✔️Temperature sensor always reads 0
SSI🟡Just the minimum to make the bootloader happy
GDB Debugging✔️See the GDB Debugging guide

说明: ✔️ 可仿真 🟡 可以仿真, 但是要看注意 ❌ 不支持

Arduino核心

Arduino核心提供内置的Arduino函数,如pinMode()digitalRead(),以及一组标准Arduino库,如Servo、Wire和SPI。

在为Raspberry Pi Pico编译代码时,您可以在两个不同的核心之间进行选择:

您可以在 this GitHub comment中了解这两个核心之间的主要区别。

要选择核心,请设置wokwi-pi-pico部分的“env”属性。对于官方Arduino核心,请使用“arduino-core”值。对于社区维护的核心,将“env”设置为“arduino-community”。例如:

  "parts": [
{
"type": "wokwi-pi-pico",
"id": "pico",
"attrs": {
"env": "arduino-community"
}

},

]

串行监视器

您可以使用串行监视器从Pi Pico上运行的代码接收信息,例如调试打印。默认情况下,串行监视器通过USB与Pi Pico通讯。

设置USB连接可能需要一些时间,并且在USB设置时间将丢失打印的消息。因此,建议告诉setup()等待串行监视器连接后再打印任何东西:

void setup() {
Serial.begin(115200);
while (!Serial) {
delay(10); // wait for serial port to connect. Needed for native USB
}
// Now you can safely print message:
Serial.println("Hello, Serial Monitor!");
}

UART上的串行监视器

串行监视器还可以通过物理UART接口与Pi Pico通信。要配置Raspberry Pi Pico和串行监视器之间的UART通信,请将以下连接添加到您的diagram.json 文件中:

  "connections": [
[ "$serialMonitor:RX", "pico:GP0", "", [] ],
[ "$serialMonitor:TX", "pico:GP1", "", [] ],

]

该示例假设Pi Pico是用“pico”的ID定义的,例如

  "parts": [
{
"type": "wokwi-pi-pico",
"id": "pico",

},

]

在代码中使用Serial1 对象:使用Serial1.begin(115200)初始化端口,然后使用Serial1.println()打印消息。例如:

void setup() {
Serial1.begin(115200);
Serial1.println("Hello, world!");
}

void loop() { }

有关完整示例,请查看Pi Pico Serial Monitor over UART Example

输出UF2二进制文件

您可以将程序从模拟器直接上传到物理Raspberry Pi Pico板中。这些步骤是:

  1. 在Wokwi代码编辑器中按“F1”,然后选择“下载UF2二进制文件”。下载应该在几秒钟内开始。

  2. 在引导加载程序模式下启动Pi Pico。您可以通过按下引导加载程序按钮来做到这一点,同时将Pi Pico插入计算机的USB端口。

  3. 您应该会在电脑上看到一个名为“RPI-RP2”的新驱动器。将您下载的UF2文件复制到该驱动器中。

MicroPython支持

Raspberry Pi Pico支持MicroPython,您可以在Wokwi中运行MicroPython项目。有关更多信息,请查看MicroPython Guide

仿真实例