使用c |编程覆盆子pi pico入门C SDK

在本教程中,我们将学习如何使用C语言编程树莓派Pico。我们将看到所有所需的步骤编程树莓派Pico在C编程语言,如下载树莓派Pico的C SDK和例子从github,安装所有必要的工具,构建Blinky C程序,最后将UF2文件加载到Pico并运行Blinky示例。

Program-Raspberry-Pi-Pico-using-C-Image

你读过这些吗?

在继续之前,你需要通过两个之前的教程,我做的树莓派Pico称为raspberry pi pico入门' 和 '用MicroPython编程树莓派'。

这些教程包括一些关于树莓派Pico的基础知识,RP2040微控制器,Pico的Pinout,编程环境,MicroPython和许多其他重要的主题。

我强烈建议你完成这两个教程来熟悉树莓派。

开始与树莓派Pico C SDK

如果你是一名老派的硬件工程师(像我一样),并且有编写固件的经验,那么在编写应用程序/固件时,你可能更喜欢C编程语言,而不是Python或MicroPython。讽刺的是,MicroPython是用C语言编写的。

尽管树莓派基金会推广Python作为所有树莓派sbc的主要编程语言,但当涉及到微控制器时,事情就截然不同了。

我认为C语言是所有高级编程语言中的低级编程。如果你想完全控制硬件直到寄存器的单个位,那么C是最终的选择。因此,C语言是许多微控制器和嵌入式系统编程的首选。

基于RP2040微控制器的Raspberry Pi Pico对此并不例外。在投资和促进Micropopthon的同时,Raspberry PI Foundt还为C / C ++编程语言发布了SDK(软件开发套件),以开发基于RP2040的电路板的应用。

让我们看看如何用C语言编程树莓派。

用什么电脑?

我已经在“编程Pico与MicropeThon”教程中讨论过这件事。您可以使用任何Linux,Windows或MAC系统作为主机。但覆盆子PI PICO的官方文档侧重于Raspberry PI计算机运行Raspberry PI OS作为主要主机系统(即使它提到了其他系统的程序)。

Raspberry-Pi-3-Model-B-for-Pico

我没有最新的覆盆子PI 4 SBC,但有一个较旧的覆盆子PI 3型号B.因此,在使用C SDK时,我通常使用raspberry pi开发Pico的应用程序。在未来的教程中,我将解释如何与Windows,Visual Studio代码和其他人这样的其他系统和环境合作。

获取Pico的C SDK和示例

假设你也使用树莓派电脑,登录到Pi使用SSH或VNC(如果你连接到一个显示器,那么很好)。我将使用VNC查看器打开树莓派的桌面。

打开终端,在/home/pi/pico.创建一个名为“pico”的目录依次输入以下命令。

cd ~ /
mkdir皮科
CD Pico.

Pico-C-Download-SDK-1

下载C SDK

Pico的C SDK官方存储库是https://github.com/raspberrypi/pico-sdk.。让我们使用以下命令将这个repo复制到新创建的' pico '目录中。

Git克隆-b master https://github.com/raspberrypi/pico-sdk.git

Pico-C-Download-SDK-2

这将在“pico”目录中创建一个名为“pico-sdk”的目录。在继续下载示例之前,你必须初始化' pico-sdk '中的' tinyusb '子模块,以便USB相关的功能(如USB CDC Serial)工作。

因此,打开' pico-sdk '目录并使用以下命令初始化USB子模块。

cd pico-sdk
Git子模块update - -init

Pico-C-Download-SDK-3

下载示例

Raspberry Pi Foundation创建了一堆不同外设的例子,如GPIO, ADC, PWM, I2C,SPI等。我们可以利用这些示例来熟悉不同的函数和API来使用这些示例而不是编写C程序。Pico示例的官方仓库是https://github.com/raspberrypi/pico-examples

我们将把这个回购克隆到'pico'目录中。所以,返回'pico'目录并使用以下命令克隆git。

cd . .
Git克隆-b master https://github.com/raspberrypi/pico-examples.git

Pico-C-Download-Examples-1

安装工具链

您刚刚下载了Pico的C源文件。要编译和构建这些文件,您需要额外的工具,如ARM GCC编译器,ARM Cortex库,CMake构建工具等。我们可以使用“APT”安装所有这些工具。首先,使用“update”命令更新包索引。

sudo apt更新

Pico-C-Install-Toolchain-1

现在,您可以使用以下命令安装必要的工具。如果您已经安装了这些工具中的任何一个,' apt '将不会再次安装它们。

安装cmake gcc-arm-none-eabi

Pico-C-Install-Toolchain-2

警告:这是一个非常大的安装,占用大约1800 MB的磁盘空间。确保您在安装Raspberry PI OS上的SD卡上有足够的空间。我使用了一个16 GB卡。

另外,完成安装需要相当长的时间。喝杯咖啡放松一下。

Pico-C-Install-Toolchain-3

探索眨眼例子

现在让我们看看第一个C示例程序,正如我们所期望的那样,它只不过是“Blink”程序。假设您仍然在' pico '目录下,打开' pico-examples '目录。这个目录包含不同外设和模块的示例。打开“眨眼”目录。

CD Pico-ilmons /眨眼

Pico-C-Build-Blink-1

在这里,你可以看到闪烁板上LED的' blink.c '源代码。如果你想打开它,使用任何编辑器,如“vim”。如果你没有' vim ',安装它使用sudo apt安装vim命令。

vim blink.c

Pico-C-Build-Blink-2

我撰写了代码的副本,并添加了评论,以便于理解。

现在我们必须构建这个源代码并生成一个二进制文件。

构建眨眼

返回“pico-ilesize”目录并创建一个名为“build”的新目录。此目录包含所有示例项目的所有CMake构建文件。打开新创建的“构建”目录。

cd . .
mkdir构建
cd构建

另外,使用以下命令导出pico-sdk的路径。

出口PICO_SDK_PATH = . . / . . / pico-sdk

Pico-C-Build-Blink-3

现在可以运行CMake命令来准备构建目录了。

cmake ..

Pico-C-Build-Blink-4

现在,“build”目录中填充了所有示例的所有与构建相关的文件。但是由于我们只对blink示例感兴趣,所以让我们使用make命令构建该示例。首先,打开“build”目录中的“blink”目录并生成文件。

CD闪烁
让阁下

Pico-C-Build-Blink-5

笔记:' -j '选项允许您指定要同时运行的作业的数量。因为我的树莓派3有一个四核CPU,所以我选择了4项同时工作。

make命令将编译所有源文件并生成一堆二进制文件。

Pico-C-Build-Blink-6

如果你在build目录中列出blink目录的内容,你可以看到生成文件的列表。

Pico-C-Build-Blink-7

在所有这些文件中,我们感兴趣的是。Uf2 '文件名为' blink.uf2 '。如果你还记得MicroPython教程,这是MicroPython二进制文件格式,可以很容易地通过拖放(在bootloader模式下设置Pico)上传到树莓派Pico。

加载Blink并运行它

将程序上传到Raspberry Pi Pico的最简单方法是将其放在引导加载程序模式下,这将将Pico安装为USB大容量存储设备。然后我们可以简单地拖放blink.uf2文件。

要将Pico置于Bootloader模式,首先将微型USB连接线插入树莓派Pico,并按住“BOOTSEL”按钮,同时将USB连接线插入树莓派(或主机)。Pico将作为一个大容量存储设备安装。

Pico-C-Load-Blink-1

打开文件管理,浏览到pico/pico-examples/build/blink目录。只需拖放“blink”。uf2 '文件到Pico。Pico将重置(并从计算机断开连接)和LED开始闪烁。

Pico-C-Load-Blink-2

奖励:可替代拔插USB电缆

你是否厌倦了拔下Raspberry Pi Pico进入引导加载模式?然后我会给你们展示一个工作,这样你们就不用每次想要上传程序到Pico时都这么做了。

我们在拔插Pico的时候实际上是在重新设置它。所以,如果我们能找到另一种方法重置皮科,我们就能把皮科和电脑连在一起。事实证明,有一种相当简单的方法来重置Pico。

如果您记得覆盆子PI Pico的引脚,则有一个称为“运行”的引脚。这是覆盆子pi pico上的pin号30。

Raspberry-Pi-Pico-Pinout

这实际上是RP2040微控制器的全局复位引脚。当该引脚拉低时,RP2040微控制器将重置。

因此,我在运行引脚和GND之间连接了一个按钮。每当我按下按钮时,它将重置微控制器。让我们将此按钮称为重置按钮。

Program-Raspberry-Pi-Pico-using-C-Reset

现在,要把树莓派皮科放在Bootloader模式,首先按住Reset按钮。然后,按住BOOTSEL按钮。现在,首先释放Reset按钮,然后再过一秒钟,释放BOOTSEL按钮。

就是这样。您的PICO现在处于Bootloader模式。您可以将USB电缆保持连接到Pico和主机(Raspberry PI),但您可以轻松复位或选择引导加载程序模式。

如果您只想重置Pico,只需按一次重置按钮并释放它。

结论

完整的初学者入门指南,用于Pico的C SDK。您学习了如何使用C编程语言编程Raspberry PI Pico通过了解如何下载Pico C SDK,安装所有必要的工具,构建源代码并将二进制文件上传到Raspberry PI Pico。

6回应

  1. 您好,我可以遵循本教程,直到“git子模块更新-init”。使用此命令,我只能得到一些git帮助,但没有命令执行。
    怎么了?

    1. 应该是git submodule update ' doubledash ' init
      git子模块更新( - )( - )init,没有acthesis。
      文本编辑器有问题。

    1. 任何Linux机器上的安装都应该是相同的。您也可以遵循Linux薄荷的相同步骤。由于薄荷基于Ubuntu,您可能必须安装一个附加的库“libstdc ++ - arm-none-nonebi-nemlib”(安装工具链后)。

留下一个回复

您的电子邮件地址不会被公开。必填字段被标记*