在本教程中,我们将学习如何使用Raspberry Pi Pico的串行端口并显示一些文本。仅当您使用官方SDK编程C中的Raspberry PI Pico时,才适用本教程。我们将学习Raspberry Pi PICo串行编程和打印'Hello,World!'文本的所有必要步骤。
关于覆盆子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)中,您可以看到组织成多个目录的所有示例的列表。在上一个教程中,我们探索了“闪烁”目录(以及相应的源文件)。
如果您通过目录列表,则存在一个名为“hello_world”的目录。此目录包含串口编程的示例项目。
更改为“hello_world”目录并列出其内容。您可以看到它包含两个名为“串行”和“USB”的目录。如果要通过UART端口串行通信,请在“串行”目录中使用该项目。如果要使用raspberry pi pico的USB串行选项,则转到“USB”目录。
首先,我们将在“串行”目录中看到该项目,在执行时,通过覆盆子PI Pico的UART打印“Hello,World!”。更改为“串行”目录并列出内容。您可以在此目录中看到两个名为'cmakelists.txt'的文件和'hello_serial.c'中的两个文件。
要查看“hello_serial.c”的源代码,可以在以下命令的帮助下使用Vim。
供您参考,我在下面复制了代码。
笔记:退出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”文件。
我将“CMAKELIST.TXT”的内容复制为“USB”目录中的“USB”目录中的参考。
此文件中有两行有助于将串行输出设置为UART或USB。他们是:
这些线路将通过USB启用PrintF输出,并通过UART禁用Printf输出。
笔记:在未来的项目中,如果要通过USB启用“PrintF”输出,则必须在该项目的相应的“Cmakelists.txt”文件中包含这些行。
建立你好世界榜样
既然我们已经了解如何配置CMake以将输出设置为UART或USB,让我们继续构建“Hello_World”目录中的项目。如果您记得“闪烁”项目,构建过程是相同的。
在“pico-mixime”的目录中以及将其更改为“Hello_World”目录中的“构建”目录。
使用make命令启动构建过程。可选地,您还可以使用-j选项指定并行作业的数量。
完成构建需要几秒钟。这将在“hello_world”目录“序列”和“USB”中构建示例。
要查看生成的文件列表,请更改为单个项目的构建目录。例如,让我们看看为“USB”示例生成的文件。
您可以看到“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重新启动并开始执行代码。
如何查看USB输出?
我们知道在闪烁覆盆子PI Pico后,它开始运行程序。但是如何查看USB的输出?我们必须使用一个名为'minicom'的特殊工具。要安装'minicom',请使用终端中的以下命令。
我的电脑(Raspberry Pi)已经安装了Minicom。
要打开串行端口,请在终端中键入以下命令:
一旦您击中ENTER,MINIOM将打开具有115200的波特率的串行端口,您可以看到'Hello,World!'不断打印。
要退出Minicom,请按Ctrl + A,然后按x。
笔记:我没有讨论如何通过UART of Raspberry PI Pico查看输出,因为使用USB非常简单。但是,如果您也对此感兴趣,那么我将在Raspberry Pi Pico的UART上的串行输出中使用新部分更新本教程。
结论
覆盆子PI PICO串口编程的完整教程在此处解释。您学习了如何配置Raspberry PI PICo以生成串行输出,如何使用CMake将串行输出指向UART或USB,安装必要的工具,最后查看通过USB打印的Printf输出。