使用PlatformIO对Arduino UNO和STM32板进行编程

使用PlatformIO对Arduino UNO和STM32板进行编程,第1张

  使用简单的用户界面,在 ArduinoArduino IDE 中进行开发总是简单而有趣。Arduino IDE 是开源的,可免费使用开发环境,具有编写、编译和上传代码到 Arduino Boards 等所有功能。它基于 Java,可在 Windows、OS X 和 Linux 等主要 *** 作系统上运行。但是,由于它的简单性和庞大的社区,它没有一些经验丰富的开发人员需要的快速开发功能,可以缩短开发周期。有许多可用于 Arduino 的开发环境,但都有一些优点和缺点。今天,我们将从易于使用且与 Arduino 环境相比增加了功能的PlatformIO 开发环境开始。

  什么是 PlatformIO?

  PlatformIO 是一个基于 Python 的物联网开发开源生态系统,是一个在 Windows、Mac 和 Linux 上运行的具有统一调试器的跨平台 IDE。PlatformIO 带有用于 Arduino 或 MBED 等平台的库管理器,以及单元测试和固件更新。PlatformIO 支持许多平台、框架、板,如 Arduino、ESP32、ESP8266,并附带许多示例和库。它独立于运行它的平台,只需要在计算机上安装 Python。

  PlatformIO的优势

  PlatformIO 具有快速开发的特点,它的 C/C++ 代码完成和智能代码检查器等功能可用于快速专业开发,而 Arduino IDE 中没有这些功能。除此之外,PlatformIO 还提供深色和浅色主题支持,以便随时进行开发。它还带有智能代码导航和代码格式化。核心功能包括多平台构建系统、库管理器、串行端口监视器等。

  支持多种架构和开发平台的统一调试器允许使用零配置调试多个嵌入式板。PlatformIO 统一调试器具有条件断点、表达式和观察点、内存查看器、活动调试会话的热重启等功能。PlatformIO Core 是用 Python 2.7 编写的,适用于 Windows、macOS、Linux、FreeBSD 甚至基于 ARM 的xyk大小的计算机,如 Raspberry PiBeagleBone、CubieBoard、Samsung ARTIK 等。除此之外,PlatformIO 还具有文件资源管理器,这有助于当项目发展到一定水平并且组织变得必要时组织文件。

  为 Arduino Uno 设置 PlatformIO

  使用 PlatformIO 非常简单,只需几个步骤即可开始。PlatformIO 需要在计算机上安装 Python,因为如上所述 PlatformIO 核心是用 Python 2.7 编写的。请注意,PlatformIO 不支持 Python 3,因此建议安装 Python 2 版本,然后继续设置 PlatformIO IDE。PlatformIO 是一个 IDE,它为最流行的 IDE 和文本编辑器提供官方包(插件、扩展)。

  今天我们将 PlatformIO 安装到像 Atom 和 Visual Studio Code 这样的文本编辑器中。在 Platform IDE 的官方文档中,它指出 PlatformIO IDE for VS Code (Visual Studio Code) 提供了更好的系统性能,并且用户发现它更容易上手。所以我们将在 Visual Studio Code 中设置 PlatformIO。VS Code 是一个著名的文本编辑器,具有许多扩展,允许我们使用不同的编程语言进行开发。

  让我们开始设置 PlatformIO 以开始在 Arduino UNO 中开发代码。涉及的步骤如下所述:

  首先从其官方网站安装Visual Studio Code 。Visual Studio Code的安装步骤在此不做说明,您可以在 VS Code 网站上找到。就像在 Windows *** 作系统上安装任何其他软件一样,涉及到一般步骤。

  成功安装后,Visual Studio 代码将如下所示。

使用PlatformIO对Arduino UNO和STM32板进行编程,pYYBAGMVpBOAXEwLAAEfv0EvHj0021.png,第2张

  下一步包括使用 VS Code Extensions 安装 PlatformIO。为此,您需要转到 VS Code 左上角的扩展图标。左上角的第 5个图标是方形框图标。只需点击它,旁边就会出现一个搜索框,您可以在其中找到许多针对不同编程语言的扩展,例如 C/C++、C#、Python、PHP、Go、JavaScript、TypeScript 和 Node.js 等。

使用PlatformIO对Arduino UNO和STM32板进行编程,poYBAGMVpA6AEu-EAACNDr9-2vo969.png,第3张

  在扩展搜索框中搜索“PlatformIO”,您将看到带有名称和描述的 PlatformIO 图标。只需单击它并安装它。安装工具链和其他依赖项可能需要一些时间。依赖项包括 C/C++ 环境,因为 Arduino 开发主要在 C/C++ 上完成。

使用PlatformIO对Arduino UNO和STM32板进行编程,poYBAGMVpAuAExgQAAHFNV47HTg144.png,第4张

  安装完成后会看到如下界面。该界面包括所有必要的导航,例如创建新项目,导入Arduino项目,打开项目,项目示例等。建议在安装完PlatformIO后重新启动VS Code Editor。

使用PlatformIO对Arduino UNO和STM32板进行编程,poYBAGMVpAeANkdbAAG7MAFkiDU178.png,第5张

  这样就完成了 PlatformIO 的安装步骤。现在 PlatformIO 已安装并可以使用了。就像 Arduino IDE 一样,我们将从 Blink Program 开始,并尝试在 Arduino UNO 中上传 Blink Program。

  使用 PlatformIO IDE 对 Arduino UNO 进行编程

  PlatformIO 接口将在编程 Arduino UNO 的同时进行讲解。在这里,我们正在使用 PlatformIO 对 Arduino 进行编程以使 LED 闪烁。使用 Arduino IDE也可以做到这一点。按照以下步骤创建一个用于闪烁 LED 的新项目。

  从快速访问菜单中选择“新建项目”选项卡。

使用PlatformIO对Arduino UNO和STM32板进行编程,pYYBAGMVpAOABruxAAC0CsBCzyw382.png,第6张

  为项目命名(此处为“Blink”)。搜索并选择 Arduino UNO 板。由于我们在 Arduino 框架中工作,所以选择的框架将是 Arduino。填写所有详细信息后,只需单击完成。

使用PlatformIO对Arduino UNO和STM32板进行编程,pYYBAGMVo_-ATRDZAAD7v8yje2g997.png,第7张

  该项目将通过收集资源和其他依赖项开始创建。

使用PlatformIO对Arduino UNO和STM32板进行编程,poYBAGMVo_uAHfP5AADGfcBtIj4840.png,第8张

  成功创建项目后,您将收到“项目已成功初始化”的提示消息,并填写所有详细信息。

使用PlatformIO对Arduino UNO和STM32板进行编程,poYBAGMVo_eAXti9AADa4GVcSpk413.png,第9张

  要打开创建的项目,只需向下滚动 PlatformIO 的主菜单,您将看到从头开始创建的所有项目列表。在创建的项目的右上角单击“打开”以打开项目并开始编辑。

使用PlatformIO对Arduino UNO和STM32板进行编程,pYYBAGMVo_OAeN0KAABVZmtQNd0494.png,第10张

  打开项目时,最初它看起来像是隐藏的,但不用担心,PlatformIO 具有文件浏览器功能,可以找到当前项目的所有文件。只需转到左上角并打开“无标题(工作场所)”。单击它时,所有文件将显示为下拉菜单。要找到文本编辑器来编辑“代码”,请选择“src”并打开“main.cpp”。文本编辑器模式将出现在主屏幕上,并打开一个新选项卡。在这里您可以编写 Current Ongoing Project 的所有代码。

使用PlatformIO对Arduino UNO和STM32板进行编程,poYBAGMVo--AOmUSAADo61bS-bQ577.png,第11张

  只需为 Arduino UNO 编写闪烁代码。请注意,PlatformIO 没有默认访问 Arduino 库,因此每次为 Arduino 编写代码时,始终在程序开头包含 Arduino 库,即“#include 《Arduino.h》” 。

使用PlatformIO对Arduino UNO和STM32板进行编程,poYBAGMVo-yAJMaGAAEzt5ACJLo957.png,第12张

  下一步是编译和上传代码。为此,让我们看一下 PlatformIO 提供的功能。此外,PlatformIO 默认选择 COM 端口。但如果它不是所需的 COM 端口,您也可以更改端口。COM 端口的变化将在本教程后面解释。PlatformIO 具有 Build、Upload、Upload to Remote Device、Clean、Test、Run Task、Serial Monitor、New Terminal等功能。所有功能都可以在编辑器的左下角找到。当您将鼠标悬停在图标上时,将显示功能。

使用PlatformIO对Arduino UNO和STM32板进行编程,pYYBAGMVo-iAHTFkAAE3kkzVxtw716.png,第13张

  要构建草图,请单击“构建”并上传草图,请单击“上传”图标。上传完成后,您将能够看到上传所需的时间以及所有其他详细信息以及一条消息“成功”。代码上传成功,您将能够看到 Arduino Board 中的 LED 闪烁。

使用PlatformIO对Arduino UNO和STM32板进行编程,pYYBAGMVo-SAK6VqAAXNHbOHjbs527.png,第14张

  要选择或更改任何 COM 端口,只需转到 PlatformIO 主屏幕,然后转到设备,在这里您可以看到所有连接的可用设备。选择适当的 COM 端口并按照相同的程序上传草图。

使用PlatformIO对Arduino UNO和STM32板进行编程,poYBAGMVo-CAdvP5AAEitgIcw8U874.png,第15张

  使用 PlatformIO IDE 对 STM32 板进行编程

  对 STM32 板进行编程将具有与上述编程 Arduino UNO 完全相同的步骤。不同之处在于为 STM32 打开新项目时选择 STM32 的板。PlatformIO的好处是,它不需要任何板子单独下载任何外部包,它会自动下载所有包,方便我们选择板子和进入编辑器。我们将使用外部 JLink/ JTAG/ STLink/ 串行编程器将草图上传到 STM32。

  只需命名项目(此处为“Blink STM32”)。然后选择STM32的板子,即‘ BluePill F103C8(Generic) ’。然后选择框架作为 Arduino。单击完成并等待一段时间,因为最初下载板 STM32 的包和依赖项需要一些时间。

使用PlatformIO对Arduino UNO和STM32板进行编程,poYBAGMVo9uAMPOjAAD22qULU00773.png,第16张

  一旦设置,下一个项目创建时间将比第一次少。现在只需转到左侧文件资源管理器中的 UnTItled(Workspace) -》 src -》 main.cpp。

  现在接下来的步骤将很重要,因为需要决定我们应该使用哪个程序员来对 STM32 板进行编程。有许多可用的编程器,例如 JTAG、STLink、JLink、Serial 等。所有这些都可以工作,但您需要配置“platformio.ini”配置页面或文件。

  在这个项目中,我们使用串行编程器 CP210x USBUART 桥接器

  首先,使用以下引脚映射将串行编程器连接到 STM32 板,并将其连接到 PC。

使用PlatformIO对Arduino UNO和STM32板进行编程,pYYBAGMVo9aALkhMAAANtzYdka0398.png,第17张

  现在转到项目资源管理器并打开“platformio.ini”页面并更改语句,如图所示。upload_protocol将告诉程序员应该使用哪个(STLink、JLink、Serial 等)。upload_port选择 COM 端口。您可以通过转到主页中的“设备”来找到。根据您的 COM 端口更改 COM 端口。

使用PlatformIO对Arduino UNO和STM32板进行编程,poYBAGMVo9OAe3yCAAG3VUI6GAM604.png,第18张

  转到“main.cpp”并将程序更改为Blink程序。现在只需上传程序,它将显示成功消息和上传时间。现在 LED 将开始闪烁连接到 STM32 板的 PC13 引脚。

使用PlatformIO对Arduino UNO和STM32板进行编程,poYBAGMVo8-ALN0IAAGHUcjuyac221.png,第19张

  这完成了使用 PlatformIO对 Arduino UNO和 STM32 板进行编程的完整教程。

#include

无效设置(){

// 将数字引脚 LED_BUILTIN 初始化为输出。

pinMode(LED_BUILTIN,输出);

}

// 循环函数永远一遍又一遍地运行

无效循环(){

数字写入(LED_BUILTIN,高);//打开LED(HIGH是电压电平)

延迟(100);// 等待一秒钟

数字写入(LED_BUILTIN,低);//通过使电压低来关闭LED

延迟(100);// 等待一秒钟

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/3000013.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-26
下一篇 2022-09-26

发表评论

登录后才能评论

评论列表(0条)

保存