使用C |编程树莓派Pico

In this tutorial, we will learn how to Program Raspberry Pi Pico using C. We will see all the steps required for Programming Raspberry Pi Pico in C Programming Language like downloading Raspberry Pi Pico’s C SDK and examples from github, installing all the necessary tools, building the Blinky C Program and finally loading the UF2 file to Pico and running the Blinky example.

Program-Raspberry-PI-PICO-使用-C图像

你读过这些吗?

在继续进一步之前,您需要通过两位以前的教程,即我为覆盆子pi pico打电话'从树莓派开始”和“编程覆盆子pi pico与micropopthon”。

这些教程包括一些关于Raspberry Pi Pico的基础知识,RP2欧宝官网app苹果下载040微控制器,PICO的引脚,编程环境,MicroPopython以及许多其他重要主题。

我强烈建议您完成这两个教程以熟悉覆盆子PI Pico。

raspberry pi pico c sdk入门

如果您是一名旧学校硬件工程师(就像我是)并拥有编写固件的经验,那么您可能更舒适地以C编程语言而不是Python或MicropeThon编写应用程序/固件。具有讽刺意味的是,Micropopthon是用C.

尽管Raspberry PI基金会促销Python作为所有Raspberry PI SBC的主要编程语言,但在微控制器方面时,事情会发生不同。

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

基于RP2040微控制器的树莓派Pico也不例外。在投资和推广MicroPython的同时,树莓派基金会还发布了面向C / c++编程语言的SDK(软件开发工具包),用于开发基于RP2040的单板应用程序。

让我们了解如何使用C编程语言编程Raspberry Pi Pico。

什么电脑使用?

我已经在“用MicroPython编程Pico”教程中讨论过了。您可以使用任何基于Linux、Windows或Mac的系统作为主机。但官方文件的树莓派Pico集中在运行树莓派操作系统作为主要主机系统的树莓派电脑(即使它提到了其他系统的程序)。

覆盆子-PI-3-Model-B-for-pico

我没有最新的树莓派4 SBC,但有一个旧的树莓派3型号b。所以,当与C SDK工作时,我通常使用树莓派开发应用程序的Pico。在以后的教程中,我将解释如何使用其他系统和环境,如Windows、Visual Studio Code等。

获取Pico的C SDK和示例

假设您还使用Raspberry PI计算机,使用SSH或VNC登录PI(如果将PI连接到显示器,那么良好,也是好的)。我将使用VNC Viewer打开Raspberry Pi的桌面。

打开终端并创建一个名为“Pico”的目录/ home / pi / pico。一个接一个地输入以下命令。

CD〜/
mkdir pico.
cd皮科

Pico-C-Download-SDK-1

下载C SDK.

Pico的C SDK的官方存储库是https://github.com/raspberrypi/pico-sdk。让我们使用以下命令克隆该仓库进入新创建的“Pico”目录。

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

Pico-C-Download-SDK-2

这将在“Pico”目录中创建一个名为“pico-sdk”的目录。在继续下载示例之前,您必须在“Pico-SDK”中初始化“Tinyusb”子模块,以实现USB CDC序列以工作。

因此,使用以下命令打开“Pico-SDK”目录并初始化USB子模块。

CD Pico-SDK
git子模块更新 - -init

Pico-C-Download-SDK-3

下载示例

Raspberry Pi Foundation为GPIO,ADC,PWM等不同外围设备创建了一堆示例,我2Pico的C, SPI等我们可以利用这些例子来熟悉不同的函数和api,而不是从头开始编写C程序。Pico的官方回购例子是https://github.com/raspberrypi/pico-examples.

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

CD ..
git clone -b master https://github.com/raspberrypi/pico-examples.git

Pico-c-download-exampls-1

安装工具链

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

sudo apt更新

Pico-C-Install-Toolchain-1

现在,您可以使用以下命令安装必要的工具。如果您已安装任何这些工具,则“APT”不会再安装它们。

sudo apt安装cmake gcc-arm-none-eabi libnewlib-arm-none-eacbi构建 - 必不可少

Pico-C-Install-Toolchain-2

警告:这是一个非常大的安装,占用了大约1800 MB的磁盘空间。请确保安装树莓派操作系统的SD卡上有足够的空间。我用的是16gb的卡。

此外,完整的安装需要相当多的时间。拿一杯咖啡,放松。

Pico-C-Install-Toolchain-3

探索眨眼的例子

让我们现在看到第一个C示例程序,只要是“眨眼”程序,如预期的那样。假设您仍然处于“Pico”目录中,请打开“Pico-Miment”目录。此目录包含不同外设和模块的示例。打开'闪烁'目录。

cd pico-examples /眨眼

pico-c-build-blink-1

在这里,您可以看到“blink.c”源代码闪烁车载LED。如果要打开它,请使用像'Vim'这样的任何编辑器。如果您没有'Vim',请使用它安装Sudo apt安装vim命令。

vim blink.c.

pico-c-build-blink-2

我复制了一份代码,并添加了易于理解的注释。

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

建立眨眼

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

CD ..
mkdir建设
CD构建

此外,使用以下命令导出Pico-SDK的路径。

导出pico_sdk_path = .. / .. / pico-sdk

pico-c-build-blink-3

您现在可以运行cmake命令以准备构建目录。

cmake . .

Pico-C-Build-Blink-4

“构建”目录现在填充了所有构建相关文件的所有示例。但随着我们仅感兴趣的闪烁示例,让我们使用make命令构建该示例。首先,在“构建”目录中打开“闪烁”目录并制作文件。

cd眨眼
make -j4.

Pico-C-Build-Blink-5

注意:“-j”选项允许您指定要运行的同时作业的数量。由于,我的raspberry pi 3具有四核CPU,我选择了4个同时工作。

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

Pico-C-Build-Blink-6

如果您列出“Blink”目录中“Blink”目录的内容,则可以看到生成的文件列表。

Pico-C-Build-Blink-7

在所有这些文件中,我们对名为“blink.uf2”的'.uf2'文件感兴趣。如果您还记得MicroPopthon教程,这是MicropeThon二进制文件的文件格式,可以通过拖放和丢弃(在引导加载程序模式下设置Pico后)轻松上传到Raspberry Pi Pico。

加载闪烁并运行它

上传程序到树莓派的Pico最简单的方法是把它放在Bootloader模式,这将挂载Pico作为一个USB大容量存储设备。然后我们可以简单地拖放眨眼。uf2文件。

将Pico放入引导加载程序模式首先将Micro USB电缆插入Raspberry PI Pico并按住“Bootsel”按钮,同时将USB电缆插入Raspberry PI(或主计算机)。PICO将作为大容量存储设备安装。

Pico-C-Load-Blink-1

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

Pico-C-Load-Blink-2

奖金:脱模和插入USB电缆的替代方案

你厌倦了拔掉覆盖和插覆覆盆子pi pico,以进入bootloader模式吗?然后我会向您展示一项工作,以便每次希望将程序上传到Pico时,您都不要这样做。

我们实际在拔出和插入Pico时实际上正在做什么。所以,如果我们能找到另一种方法来重置Pico,那么我们可以将PICO插入计算机。事实证明,有一个简单的方法来重置Pico。

如果你还记得树莓派的别针,有一个别针叫“RUN”。这是树莓派的30号徽章。

覆盆子 -  pi-pico-pinout

这其实是RP2040单片机的全球复位引脚。当此引脚被拉低时,RP2040单片机将复位。

所以,我连接了一个按钮之间的RUN引脚和GND。每当我按下按钮,它就会重置微控制器。让我们把这个按钮称为Reset button。

Program-Raspberry-PI-PICO-CO-C复位

现在,将Raspberry Pi Pico放在引导加载程序模式下,首先按下并按住重置按钮。然后,按住Bootsel按钮。现在,首先释放重置按钮,然后在秒后释放,释放Bootsel按钮。

就是这样。你的Pico现在处于引导加载模式。你可以保持USB线连接到Pico和主机电脑(树莓派),但你可以轻松重置或选择引导加载模式。

如果你只是想重置Pico,只需按下重置按钮一次,释放它。

结论

Pico C SDK的完整入门指南。您学习了ob直播app如何使用C编程语言编程树莓派Pico通过了解如何下载Pico C SDK,安装所有必要的工具,构建源代码和上传二进制文件到树莓派Pico。

6的反应

  1. 你好,我可以跟随本教程直到“git submodule update -init”。使用这个命令,我只得到一些git帮助,但没有命令执行。
    会出什么问题呢?

    1. 它应该是git子模块更新'doubleash'init
      Git子模块update (-)(-)init没有伪操作。
      文本编辑器有问题。

    1. 任何Linux机器上的安装都应该是相同的。对于Linux Mint也可以遵循相同的步骤。因为Mint是基于Ubuntu的,你可能需要安装一个额外的库“libstdc++-arm-none-eabi-newlib”(在安装工具链之后)。

发表评论

您的电子邮件地址将不会被公布。必需的地方已做标记*