C/C++ SDK

SDK 设置

要全面了解如何使用 C/C++ SDK,请阅读 '入门' 文档。不过,如果您打算在 Raspberry Pi 上为 Pico 进行开发,那么您可以通过命令行运行我们的 setup script,快速设置 C/C++ 工具链。

Note
在运行安装脚本之前,您应该确保Raspberry Pi上的操作系统是 最新的

Raspberry Pi Pico C/C++ SDK

我们的官方C SDK可以从命令行使用,也可以从流行的集成开发环境中使用,如Visual Studio Code、Eclipse和CLion。要开始使用,请下载我们的C/C++SDK和示例,并查看我们的“https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf[getting started]”留档。或者有关快速设置,请参阅下一节。

您可以在以下位置找到C/C++SDK的留档:

Getting started with Raspberry Pi Pico-series

C/C++开发与树莓派Pico,Pico2和其他树莓派microcontroller-based板

用 Raspberry Pi Pico W 连接互联网

使用C/C++或MicroPython在线获取Raspberry Pi Pico W

Raspberry Pi Pico-series C/C++ SDK

库和工具,用于在Raspberry Pi微控制器上开发C/C++

树莓派PicoC/C++SDK的 API level documentation

文档

The pico-examples repository

示例项目

SDK源代码是开源的,可通过 pico-sdk Github repository 获得。

Note

要使用 C/C++ SDK 为除 Raspberry Pi Pico 之外的电路板构建应用程序,请向 CMake 传递 -DPICO_BOARD=boardname。要使用 C/C++ SDK 为 Raspberry Pi Pico 之外的电路板构建应用程序,请向 CMake 传递 -DPICO_BOARD=boardname,其中 boardname 是您的电路板名称。例如

  • 要为 Adafruit Feather RP2040 构建应用程序,请通过 -DPICO_BOARD=adafruit_feather_rp2040

  • 要为 Pico W 构建应用程序,请传递 -DPICO_BOARD=pico_w(如果希望连接到无线网络,还需添加参数 -DWIFI_SSID="Your Network" -DWIFI_PASSWORD="Your Password")。

有关详细信息,请参阅 Raspberry Pi Pico SDK 中的 `boards/`目录论坛

第一个二进制文件

LED闪烁

任何人在使用新微控制器时编写的第一个程序是闪烁和关闭发光二极管。树莓派Pico带有一个板载发光二极管。发光二极管连接到板上树莓派RP2040上的 GP25 用于Pico,连接到英飞凌43439无线芯片上的 WL_GPIO0 用于Pico W。

你可以时断时续地打开和关闭,

  1. 下载Blink UF2 for Raspberry Pi Pico, 或 for Pico W

  2. 按住BOOTSEL按钮,将Pico插入树莓派或其他计算机的USB端口。

  3. 它将作为称为RPI-RP2的大容量存储设备安装。

  4. 将Blink UF2二进制文件拖放到RPI-RP2卷上。Pico将重新启动。

您应该会看到板载LED闪烁。

您可以在Github上看到 Raspberry Pi PicoPico W 版本的代码。

Say "Hello World"

任何人编写的下一个程序是通过USB串行连接说’Hello World'。

  1. 下载 'Hello World' UF2

  2. 按住BOOTSEL按钮,将Pico插入树莓派或其他计算机的USB端口。

  3. 它将作为称为RPI-RP2的大容量存储设备安装。

  4. 将 'Hello World' UF2二进制文件拖放到RPI-RP2卷上。Pico将重新启动。

  5. 打开终端窗口并输入:

    $ sudo apt install minicom
    $ minicom -b 115200 -o -D /dev/ttyACM0

您应该看到 "Hello, world!" 打印到终端。

你可以在 Github 看到代码

快速启动自己的项目

以下说明简洁,仅基于Linux。有关详细步骤、其他平台的说明以及一般说明,我们建议您查看 Getting started with Raspberry Pi PicoRaspberry Pi Pico C/C++ SDK 书籍。

安装CMake(至少3.13版本)和GCC交叉编译器

$ sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib

通过在本地克隆SDK,将您的项目设置为指向使用树莓派PicoSDK:

$ git clone https://github.com/raspberrypi/pico-sdk.git

external/pico_sdk_import.cmake 从SDK复制到您的项目目录中

PICO_SDK_PATH 设置为您环境中的SDK位置,或稍后将其(-DPICO_SDK_PATH=)传递给 cmake

设置一个 CMakeLists.txt,如下所示:

cmake_minimum_required(VERSION 3.13)

# initialize the SDK based on PICO_SDK_PATH
# note: this must happen before project()
include(pico_sdk_import.cmake)

project(my_project)

# initialize the Raspberry Pi Pico SDK
pico_sdk_init()

# rest of your project

继续编写您的代码,请参阅 pico-examples 或者 Raspberry Pi Pico C/C++ SDK 书籍以获取有关如何做到这一点的更多信息。

您可以做的最简单的事情是单个源文件(例如 hello_world.c

#include <stdio.h>
#include "pico/stdlib.h"

int main() {
    setup_default_uart();
    printf("Hello, world!\n");
    return 0;
}

并将以下内容添加到您的CMakeLists.txt:

add_executable(hello_world
    hello_world.c
)

# Add pico_stdlib library which aggregates commonly used features
target_link_libraries(hello_world pico_stdlib)

# create map/bin/hex/uf2 file in addition to ELF.
pico_add_extra_outputs(hello_world)
Note
本示例使用标准输出的默认通用异步收发设备;如果要使用默认USB,请参阅hello-usb示例。

设置CMake构建目录。例如,如果不使用IDE:

$ mkdir build
$ cd build
$ cmake ..

当为Raspberry PiPico以外的板构建时,您应该将 -DPICO_BOARD=board_name 传递给上面的cmake命令,例如 cmake -DPICO_BOARD=pico_w .. 来配置SDK并相应地为该特定板构建选项。

这样做可以设置各种编译器定义(例如通用异步收发设备和其他硬件的默认引脚号),并且在某些情况下还可以使用额外的库(例如为 PICO_BOARD=pico_w 构建时的无线支持),如果没有提供必要功能的板,这些库就无法构建。

有关SDK本身中定义的板列表,请查看 this directory,其中每个命名板都有一个标头。

从您创建的构建目录创建您的目标。

$ make hello_world

您现在可以通过调试器加载 hello_world.elf,或者可以通过拖放在Raspberry PiPico上安装和运行 hello_world.uf2