如何设置覆盆子PI PICO串行编程?USB串行输出

在本教程中,我们将学习如何使用Raspberry Pi Pico的串行端口并显示一些文本。仅当您使用官方SDK编程C中的Raspberry PI Pico时,才适用本教程。我们将学习Raspberry Pi PICo串行编程和打印'Hello,World!'文本的所有必要步骤。

覆盆子 -  pi-pico

关于覆盆子PI Pico串口的简要说明

使用Raspberry PI Pico闪烁LED后,下一个逻辑步骤是使用串口并打印一些文本,如Hello World。这里的重要点不是通过串行端口打印的文本,而是raspberry pi pico将数据传输到串行端口的过程。

关于Raspberry Pi Pico串行C SDK的美丽事情是它定义了“STDIO”样式功能,如“PrintF”,供我们使用。

在继续编程Raspberry Pi Pico串口之前,我们必须了解Raspberry Pi PICo的串行输入和输出一点。Raspberry Pi Pico的串行输入和输出可以是UART或USB CDC

Raspberry Pi Pico有两个UART外围设备:UART0和UART1。当您使用“PrintF”功能打印数据时,默认串行端口是UART,在该UART0外设中使用。

笔记:Pico SDK有一个名为'pico.h'的板配置文件,它将一些重要的引脚设置为默认的不同操作,如UART,车载LED,i2C,SPI等

根据该板配置文件,UART0是默认的UART外设,默认的UART0_TX引脚是GPIO 0(GP0),UART0_RX引脚是GPIO 1(GP1)。查看Raspberry Pi Pico的引脚,在“开始使用Raspberry PI PICo”教程中的所有可能的GPIO引脚中,可以配置为UART0或UART1引脚。

探索你好世界例

随着覆盆子PI PICO的串行编程简介,让我们继续探索串行输出的示例。在继续前进之前,如果您没有使用C SDK编程Raspberry PI Pico的初始设置,那么我强烈建议您将前一个名为“编程Raspberry Pi Pico与C”的教程引用。

在该教程中,我讨论了设置Raspberry PI的所有必要步骤(这是Raspberry PI计算机而不是Pico),如下载工具,SDK,示例和编程Pico与Blinky示例。

在“pico-ilmustres”目录(IN / home / pi / pico)中,您可以看到组织成多个目录的所有示例的列表。在上一个教程中,我们探索了“闪烁”目录(以及相应的源文件)。

CD〜
CD Pico / Pico-Mimem
LS.

如果您通过目录列表,则存在一个名为“hello_world”的目录。此目录包含串口编程的示例项目。

覆盆子 -  PI-PICO-Serial-1

更改为“hello_world”目录并列出其内容。您可以看到它包含两个名为“串行”和“USB”的目录。如果要通过UART端口串行通信,请在“串行”目录中使用该项目。如果要使用raspberry pi pico的USB串行选项,则转到“USB”目录。

cd hello_world.
LS.

覆盆子 -  PI-PICO-Serial-2

首先,我们将在“串行”目录中看到该项目,在执行时,通过覆盆子PI Pico的UART打印“Hello,World!”。更改为“串行”目录并列出内容。您可以在此目录中看到两个名为'cmakelists.txt'的文件和'hello_serial.c'中的两个文件。

CD系列
LS.

覆盆子 -  PI-PICO-Serial-3

要查看“hello_serial.c”的源代码,可以在以下命令的帮助下使用Vim。

vim hello_serial.c.

供您参考,我在下面复制了代码。

笔记:退出Vim,键入':q'。

代码非常简单。经过一些硬件初始化(对于UART或USB),程序打印“Hello,World!”文本,延迟1000毫秒。如果您注意到代码,则无法指定是否使用UART或USB。它的原因在CMake中配置。

使用CMake指令,我们可以将串行输出设置为UART或USB CDC(或两者)。事实上,如果您在“hello_world”目录中打开'USB'目录,您可以看到两个文件:'cmakelists.txt'和'hello_usb.c'。'hello_usb.c'的内容与'hello_serial.c'完全相同。

差异位于每个目录中的相应的“cmakelists.txt”文件中。在不修改源代码的情况下,只需通过配置“CMAKELISTS.TXT”文件,基本上可以将UART或USB作为串行输出。

探索Cmakelists文件

在'hello_world'目录的“串行”目录中,使用Vim打开“CMAKELIST.TXT”文件。我复制了“cmakelists.txt”的内容以供参考。

由于SDK中的默认配置是使用UART0作为串行端口,因此此“CMAKELISTS.TXT”文件中没有任何重要意义。如果要查看启用和/或禁用UART和USB的实际CMake指令,那么我们必须在“Hello_World”目录的“USB”目录中查看“CMAKELIST.TXT”文件。

假设您位于“Hello_World”目录的“串行”目录中,请使用以下命令转到“USB”目录并在“USB”目录中打开“CMAKELIST.TXT”文件。

CD ..
CD USB.
LS.
vim cmakelists.txt.txt.

覆盆子 -  PI-PICO-SERIAL-4

我将“CMAKELIST.TXT”的内容复制为“USB”目录中的“USB”目录中的参考。

此文件中有两行有助于将串行输出设置为UART或USB。他们是:

pico_enable_stdio_usb(hello_usb 1)
pico_enable_stdio_uart(hello_usb 0)

这些线路将通过USB启用PrintF输出,并通过UART禁用Printf输出。

笔记:在未来的项目中,如果要通过USB启用“PrintF”输出,则必须在该项目的相应的“Cmakelists.txt”文件中包含这些行。

建立你好世界榜样

既然我们已经了解如何配置CMake以将输出设置为UART或USB,让我们继续构建“Hello_World”目录中的项目。如果您记得“闪烁”项目,构建过程是相同的。

在“pico-mixime”的目录中以及将其更改为“Hello_World”目录中的“构建”目录。

CD〜
CD Pico / Pico-Mimem
LS.
CD构建
LS.
cd hello_world.

覆盆子 -  PI-PICO-Serial-5

使用make命令启动构建过程。可选地,您还可以使用-j选项指定并行作业的数量。

make -j4.

覆盆子-PI-PICO-Serial-6

完成构建需要几秒钟。这将在“hello_world”目录“序列”和“USB”中构建示例。

覆盆子 -  PI-PICO-Serial-7

要查看生成的文件列表,请更改为单个项目的构建目录。例如,让我们看看为“USB”示例生成的文件。

LS.
CD USB.
LS.

覆盆子 -  PI-PICO-SERIAL-8

您可以看到“USB”示例项目的以下四个目标文件:

  • hello_usb.bin.
  • hello_usb.elf.
  • hello_usb.hex.
  • hello_usb.uf2.

同样,“串行”项目也包含“/微微/微微示例/ build / hello_world / serial'目录中的四个目标文件。

  • hello_serial.bin.
  • hello_serial.elf.
  • hello_serial.hex.
  • hello_serial.uf2.

闪蒸覆盆子pi pico

我们将使用USB示例,因为查看串行输出更方便。我已经讨论了如何在上一个教程中将程序上传到Raspberry Pi Pico。伟德老虎机手机版但作为提醒,我将简要介绍一次步骤。

在将Raspberry Pi Pico中插入主机(在我的情况下覆盆子PI)时握住“Bootsel”按钮。这将使Raspberry Pi PICo显示为可移动存储设备,称为RPI-RP2。

我还解释了一个简单的技巧来添加一个按钮来重置raspberry pi pico,这消除了每次想要上传程序时拔掉拔出和重新插入的必要性。

浏览到Hello World USB项目构建目录(Home / Pi / Pico / Pico-emplice / Builds / Hello_World / USB)并将“Hello_USB.uf2”文件拖放到RPI-RP2设备中。raspberry pi pico重新启动并开始执行代码。

覆盆子 -  PI-PICO-SERIAL-9

如何查看USB输出?

我们知道在闪烁覆盆子PI Pico后,它开始运行程序。但是如何查看USB的输出?我们必须使用一个名为'minicom'的特殊工具。要安装'minicom',请使用终端中的以下命令。

sudo apt安装minicom

覆盆子 -  PI-PICO-SERIAL-10

我的电脑(Raspberry Pi)已经安装了Minicom。

要打开串行端口,请在终端中键入以下命令:

Minicom -b 115200 -o -d / dev / ttyacm0

一旦您击中ENTER,MINIOM将打开具有115200的波特率的串行端口,您可以看到'Hello,World!'不断打印。

覆盆子 -  PI-PICO-Serial-11

要退出Minicom,请按Ctrl + A,然后按x。

笔记:我没有讨论如何通过UART of Raspberry PI Pico查看输出,因为使用USB非常简单。但是,如果您也对此感兴趣,那么我将在Raspberry Pi Pico的UART上的串行输出中使用新部分更新本教程。

结论

覆盆子PI PICO串口编程的完整教程在此处解释。您学习了如何配置Raspberry PI PICo以生成串行输出,如何使用CMake将串行输出指向UART或USB,安装必要的工具,最后查看通过USB打印的Printf输出。

发表评论

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

电子机器Favicon.
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu
map