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

发布时间:2024-03-22  

  使用简单的用户界面,在 Arduino 和 Arduino 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 的信用卡大小的计算机,如 Raspberry Pi、BeagleBone、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 代码将如下所示。

pYYBAGMVpBOAXEwLAAEfv0EvHj0021.png

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

poYBAGMVpA6AEu-EAACNDr9-2vo969.png

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

poYBAGMVpAuAExgQAAHFNV47HTg144.png

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

poYBAGMVpAeANkdbAAG7MAFkiDU178.png

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

  使用 PlatformIO IDE 对 Arduino UNO 进行编程

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

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

pYYBAGMVpAOABruxAAC0CsBCzyw382.png

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

pYYBAGMVo_-ATRDZAAD7v8yje2g997.png

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

poYBAGMVo_uAHfP5AADGfcBtIj4840.png

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

poYBAGMVo_eAXti9AADa4GVcSpk413.png

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

pYYBAGMVo_OAeN0KAABVZmtQNd0494.png

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

poYBAGMVo--AOmUSAADo61bS-bQ577.png

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

poYBAGMVo-yAJMaGAAEzt5ACJLo957.png

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

pYYBAGMVo-iAHTFkAAE3kkzVxtw716.png

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

pYYBAGMVo-SAK6VqAAXNHbOHjbs527.png

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

poYBAGMVo-CAdvP5AAEitgIcw8U874.png

  使用 PlatformIO IDE 对 STM32 板进行编程

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

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

poYBAGMVo9uAMPOjAAD22qULU00773.png

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

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

  在这个项目中,我们使用串行编程器 CP210x USB 到 UART 桥接器。

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

pYYBAGMVo9aALkhMAAANtzYdka0398.png

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

poYBAGMVo9OAe3yCAAG3VUI6GAM604.png

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

poYBAGMVo8-ALN0IAAGHUcjuyac221.png

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

#include

无效设置(){

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

pinMode(LED_BUILTIN,输出);

}

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

无效循环(){

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

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

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

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

}


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>