Raspberry Pi Pico C/C++ 开发入门教程
本教程将介绍如何使用 Pico VS Code 扩展进行 C/C++ 开发,并指导您配置基于 Pico SDK 的 C/C++ 开发环境。
本教程的核心逻辑适用于所有 RP 系列开发板,但所有操作步骤均以 Raspberry Pi Pico 2 为例进行讲解。如果您使用其他型号的开发板,请根据实际情况修改相应设置。
1. 什么是 Pico C/C++ 开发
Raspberry Pi Pico 的 C/C++ 开发基于官方的 Pico SDK,这是一套专为 RP2040 / RP2350 等 Pico 系列芯片设计的 C/C++ 软件开发工具包。Pico SDK 提供了丰富的 API 库,用于控制 GPIO、I2C、SPI、PWM、ADC 等外设,以及多核处理、定时器、DMA 等高级功能。
为了简化 C/C++ 开发环境的搭建和使用,Raspberry Pi 官方推出了 Pico VS Code 扩展。该扩展集成了以下功能:
- 一键安装:自动安装和管理 Pico SDK、CMake、编译工具链等开发依赖
- 工程管理:通过图形化向导快速创建、导入和配置 C/C++ 工程
- 编译构建:集成 CMake 和 Ninja 构建系统,一键编译生成 UF2 固件
- 烧录调试:支持 UF2 固件烧录,并可通过 OpenOCD 实现断点调试、单步执行和变量查看
- 跨平台支持:在 Windows、macOS 和 Linux 上提供统一的开发体验
- 本教程适用于树莓派 Pico、Pico 2 与微雪电子开发的所有 RP 系列开发板
- 安装教程默认以 Windows 11 为例,其他操作系统请参考 树莓派官方教程
2. 安装 Visual Studio Code 编辑器
-
下载并安装 Visual Studio Code。
-
安装时建议勾选 通过 Code 打开操作添加到 Windows 资源管理器文件上下文菜单,以便快速打开项目文件夹。
提示如果已安装 VS Code,注意检查版本是否为 v1.87.0 或更高版本


3. 安装 Pico 扩展
-
点击下载 pico-vscode 程序包
-
点击扩展,选择从 VSIX 安装

-
解压下载的 pico-vscode 程序包,选择 vsix 后缀的软件包,点击安装

-
随后 VS Code 会自动安装 raspberry-pi-pico 及其依赖扩展,可以点击刷新查看安装进度

-
右下角显示完成安装,关闭 VS Code

-
离线包中的扩展版本为 0.15.2,安装完成后,更新至最新版本

4. 配置 C/C++ 开发环境
-
打开目录
C:\Users\用户名,将整个 .pico-sdk 拷贝至该目录
-
拷贝完成

-
打开 VS Code,对 Raspberry Pi Pico 扩展中各个路径进行配置

配置如下:
Cmake Path:${HOME}/.pico-sdk/cmake/v3.28.6/bin/cmake.exeGit Path:${HOME}/.pico-sdk/git/cmd/git.exeNinja Path:${HOME}/.pico-sdk/ninja/v1.12.1/ninja.exePython3 Path:${HOME}/.pico-sdk/python/3.12.1/python.exe
5. 创建 C/C++ 工程
-
配置完成后,可以创建一个新工程进行测试。输入工程名称、选择保存路径,然后点击 Create 创建工程。如需使用官方示例代码,可以点击工程名旁的 Example 进行选择

-
成功创建工程

6. 编译 C/C++ 工程
-
首次编译时,需要选择 Pico SDK 版本

-
选择 Yes 进行高级配置
-
选择交叉编译工具链:
- 13.2.Rel1:适用于 ARM 核心(Pico、Pico W 等)
- RISCV.13.3:适用于 RISC-V 核心(Pico 2 的 RISC-V 模式)
根据您的开发板和需求选择对应的工具链

-
CMake 版本选择 Default(使用前面配置的路径)

-
Ninja 构建工具版本选择 Default

-
选择开发板

-
配置完成后,点击 Compile 按钮开始编译

-
编译成功后,会在工程的
build目录下生成.uf2格式的固件文件
7. 烧录固件
提供两种方法将编译好的固件烧录到开发板:
-
使用 Pico VS Code 插件烧录
将开发板通过 USB 连接到电脑,然后点击 Run 按钮直接烧录固件

-
手动烧录固件
1. 按住开发板上的 BOOTSEL 按键2. 将开发板通过 USB 连接到电脑3. 电脑会将开发板识别为一个 U 盘设备4. 将 uf2 格式的固件文件拖拽到 U 盘中5. 设备会自动重启,完成固件烧录
8. 导入 C/C++ 工程
-
在 Pico VS Code 插件中选择导入工程,然后选择工程所在的目录

-
注意事项:导入的工程中,
CMakeLists.txt文件不能包含中文(包括注释),否则可能导致导入失败 -
开发板配置:导入工程后,需要检查
CMakeLists.txt文件是否包含开发板配置代码。只有包含以下配置,才能正常切换 Pico 和 Pico 2:
set(PICO_BOARD pico2 CACHE STRING "Board type")提示如果
CMakeLists.txt中没有此配置,即使在 VS Code 中选择了 Pico 2,编译出的固件仍然是针对 Pico 的
9. 调试 C/C++ 工程
Pico/Pico 2 支持外接调试器进行程序烧录及调试,方便进行断点分析和运行状态查看。调试 Pico/Pico 2 需通过 SWD(Serial Wire Debug)接口配合外部调试器使用。
您可以选择 RP2350-GEEK、Raspberry Pi Debug Probe 或 Pico/Pico 2 开发板作为外部调试器,下面我们介绍使用不同调试器,连接 Pico/Pico 2 的调试接口进行程序烧录及调试的步骤。
-
硬件连接
- RP2350-GEEK
- Raspberry Pi Debug Probe
- Pico/Pico 2
RP2350-GEEK 是一款微雪 (Waveshare) 为极客设计的开发板,板载 USB-A 公口、1.14 寸 LCD 屏幕、Mirco SD 卡槽等外设,并引出了 SWD 接口、UART 接口和 I2C 接口。烧录对应 Debugprobe 固件后,RP2350-GEEK 将转换为 USB → SWD 和 UART 桥接器,连接 Pico/Pico 2 调试时按下图方式进行连接。

RP2350-GEEK (左) Pico (右),详细的连接关系如下:
RP2350-GEEK GND -> Pico GNDRP2350-GEEK GP2 -> Pico SWCLKRP2350-GEEK GP3 -> Pico SWDIORP2350-GEEK GP4/UART1 TX -> Pico GP1/UART0 RXRP2350-GEEK GP5/UART1 RX -> Pico GP0/UART0 TXRaspberry Pi Debug Probe 是树莓派官方出品的一款专为 Pico/Pico 2 设计的 USB 硬件调试下载器,采用一体式设计,具有免焊接、即插即用的特性,可通过 SWD 接口连接目标板的调试接口进行调试,连接 Pico/Pico 2 调试时按下图方式进行连接。

Raspberry Pi Debug Probe (左) Pico (右),详细的连接关系如下:
D 端口- 连接至 Pico DEBUG SWD JST-SH 连接器U 端口- Debug Probe RX(黄线) -> Pico GP0/UART0 TX- Debug Probe TX(橙线) -> Pico GP1/UART0 RX- Debug Probe GND(黑线) -> Pico GND使用另一台 Pico/Pico 2 同样可以对 Pico/Pico 2 进行烧录和调试。烧录对应 Debugprobe 固件后,Pico/Pico 2 将转换为 USB → SWD 和 UART 桥接器,连接 Pico/Pico 2 调试时按下图方式进行连接。

Pico A (左) Pico B (右),Pico A 作为调试器,Pico B 作为终端设备。详细的连接关系如下:
Pico A GND -> Pico B GNDPico A GP2 -> Pico B SWCLKPico A GP3 -> Pico B SWDIOPico A GP4/UART1 TX -> Pico B GP1/UART0 RXPico A GP5/UART1 RX -> Pico B GP0/UART0 TX -
导入工程
在新建或导入工程时,选择 DebugProbe 调试方式

-
烧录程序
连接调试器后,可以直接使用调试器烧录程序

- ①进入 Pico VS Code 插件页面
- ②点击 SWD 烧录程序
-
调试程序

- ①点击调试程序
- ②选择 Pico Debug
-
界面说明

- ①重启设备
- ②继续运行程序
- ③单步执行
- ④进入函数运行
- ⑤跳出函数运行
- ⑥重新开始调试
- ⑦停止调试
- ⑧串口监视器
- ⑨变量窗口
- ⑩监视窗口
-
断点调试

- ①点击行号前可添加或删除断点
- ②调试过程中可随时添加或删除断点
- ③在多核调试时使用断点可以在多个核心间切换