如何设置树莓派皮科串行编程?USB串行输出

在本教程中,我们将学习如何使用树莓派的串口和显示一些文本。本教程仅适用于使用官方SDK编写C语言的树莓派Pico。我们将学习所有必要的步骤树莓派Pico串行编程和打印' Hello, World!'文本的串行输出。

覆盆子 -  pi-pico

树莓派的串口简介

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

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

在继续编程树莓派Pico串口之前,我们必须了解一点树莓派Pico的串口输入和输出。树莓派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 Pin是GPIO 0 (g0), UART0_RX Pin是GPIO 1 (GP1)。看看树莓派Pico的引脚在“开始与树莓派Pico”教程中所有可能的GPIO引脚,可以配置为UART0或UART1引脚。

探索Hello World示例

在简要介绍Raspberry Pi Pico的串行编程之后,让我们不再探究串行输出的示例。在继续之前,如果你还没有通过使用C SDK对编程树莓派Pico进行初始设置,那么我强烈建议你参考之前的教程“用C编程树莓派Pico”。

在那篇教程中,我讨论了设置树莓派(这是树莓派电脑,不是Pico)的所有必要步骤,比如下载工具、SDK、示例和用Blinky示例编程Pico。

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

cd ~
CD pico / pico-mixime
LS.

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

覆盆子 -  PI-PICO-SERIAL-1

更改到' hello_world '目录并列出其内容。你可以看到它包含两个目录叫做' serial '和' usb '。如果您想要通过UART Port进行串行通信,那么请使用' serial '目录中的项目。如果你想使用树莓派的USB串口选项,然后转到' USB '目录。

cd hello_world
LS.

覆盆子-PI-PICO-Serial-2

首先,我们将在“串行”目录中看到该项目,当执行时,将文本“Hello,World!”打印通过覆盆子PI Pico。更改为“串行”目录并列出内容。您可以在此目录中看到一个名为'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 '目录的' serial '目录下,使用以下命令进入' usb '目录并打开' usb '目录下的' CMakeLists.txt '文件。

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

覆盆子 -  PI-PICO-SERIAL-4

我拷贝了' usb '目录下' CMakeLists.txt '的内容供您参考。

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

pico_enable_stdio_usb(hello_usb 1)
pico_enable_stdio_uart (hello_usb 0)

这些行将通过USB启用printf输出,并通过UART禁用printf输出。

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

建立你好世界榜样

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

转到' pico-examples '目录中的' build '目录,在这个目录中更改为' hello_world '目录。

cd ~
CD pico / pico-mixime
LS.
CD构建
LS.
cd hello_world

覆盆子 -  PI-PICO-SERIAL-5

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

make -j4.

覆盆子 -  PI-PICO-Serial-6

它将花费几秒钟来完成构建。这将在' hello_world '目录' serial '和' 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.

闪烁的树莓派

我们将使用USB的例子,因为它更方便查看串行输出。我已经讨论了如何上传程序到树莓派Pico在之前的教程。必威网址app但为了提醒大家,我将再简单地回顾一下这些步骤。

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

我还解释了一个简单的小技巧,可以添加一个按钮来重置树莓派Pico,这样每次你想上传一个程序时,就不需要再拔下或重新插拔了。

浏览到Hello World USB项目构建目录(home/pi/pico/pico-examples/builds/hello_world/ USB),并拖放' hello_usb. dll '。uf2 '文件到RPI-RP2设备。Raspberry Pi Pico重新启动并开始执行代码。

覆盆子 -  PI-PICO-SERIAL-9

如何查看USB输出?

我们知道,在闪烁树莓派皮科后,它开始运行程序。但是如何查看USB输出呢?我们必须使用一种叫做“Minicom”的特殊工具。要安装' minicom ',在终端中使用以下命令。

sudo apt安装minicom

覆盆子 -  PI-PICO-SERIAL-10

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

在终端中输入以下命令打开串口:

minicom -b 115200 -o -D /dev/ttyACM0

当你按下enter键,minicom打开波特率为115200的串口,你可以看到“Hello, world!”,不断地被打印出来。

覆盆子 -  PI-PICO-Serial-11

按“Ctrl+a”和“x”退出。

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

结论

一个完整的教程在树莓派皮科串口编程在这里解释。您学习了如何配置树莓派Pico生成串行输出,如何使用CMake将串行输出定向到UART或USB,安装必要的工具,并最终查看通过USB打印的printf输出。

发表评论

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