问题标签 [platformio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
78 浏览

arduino - 通过串行访问时未修改 Arduino 全局数组?

我正在开发一个家庭自动化系统,其中一部分包括一个通过 USB 连接到RaspberryPi 3 Model B的Arduino Mega2560。Arduino 通过串行从 Pi 接收两个简短的简单命令;第一个命令设置 LED 灯的“区域”,第二个命令在前面描述的区域上设置颜色。两个命令的语法如下,其中括号中的项目是单字节,len+off 是 3 个 ascii 字节,解释为 base-10,r+g+b 是 2 个 ascii 字节,每个字节都解释为十六进制。color set 命令支持可变数量的区域,如下所示:

区域设置命令

颜色设置命令

每个命令都会发送肯定/否定确认,因此您会认为我能够知道出了什么问题,但是当我尝试使用第二个命令设置浅色时,我得到了意外的行为,尽管按预期得到了确认。 到目前为止,我能得出的唯一合理的结论是,对于全局数组,区域会丢弃更改并始终保持为零。 比如这个交换导致没有灯亮(实际交换中没有评论)

这是 Arduino 的精简源代码:

对于我在这里缺少的任何建议,我将不胜感激,无论如何,感谢您阅读本文!

0 投票
1 回答
421 浏览

atom-editor - 通过 Atom 上的 Platformio 进行 Bash:箭头键不起作用

我正在通过 Platformio 在 Atom 中使用适用于 Linux Bash 的 Windows 子系统 - 并且所有箭头键都不起作用。

WSL Bash 中存在一个应该修复的箭头键错误,所以我打开system32\bash.exe测试,确实箭头键在那里工作;问题只发生在 Atom 中。

有谁知道解决方法/解决方案?谢谢!

0 投票
0 回答
149 浏览

arduino - 对 TinyScreen+ 的 PlatformIO 支持

我无法使用 PlatformIO 将 Arduino 草图上传到 TinyScreen+。上传成功,但 TinyScreen+ 无法启动。如果我使用 Arduino IDE,上传和启动就可以了。

我在上传时查看了 Arduino IDE 和 PlatformIO 的输出,除了固件的大小之外,一切都是一样的。PlatformIO .bin 大了 2 页。这有关系吗?另外为什么使用PlatformIO上传时上传成功但没有启动?

这是我的platformio.ini:

谢谢你。

0 投票
1 回答
951 浏览

arduino - Platform.io 通过 SWD (J-LINK) 上传到 Teensy 3.6

我正在使用优秀的 ht​​tp: //platformio.org/和 Visual Studio Code 为 Teensy 3.6(Arduino 兼容板)进行开发。

这很好用。但我想通过 SWD(串行线调试)进行更好的调试。所以我断开了与 Arduino 兼容的 USB 芯片,转而通过 SWD 和 JLINK 连接。与此类似:https ://mcuoneclipse.com/2017/04/29/modifying-the-teensy-3-5-and-3-6-for-arm-swd-debugging/

我可以使用“J-Link Lite”软件刷新我通过platformio构建的固件就好了。我也可以毫无问题地运行 J-Link GDB 服务器。但我无法让 IDE 集成工作。

我的platformio.ini样子是这样的:

仍然忽略upload_protocol,当我platformio.exe run --target upload通过IDE调用upload()时,我得到的只是

所以它仍在尝试通过与 Arduino 兼容的 USB 连接而不是通过 SWD 连接进行上传。如何让 platformio 更改上传方法或 upload_protocol?

0 投票
1 回答
269 浏览

c++ - 自定义类的 C++ LinkedList 错误

我正在尝试实例化这样的形状列表:

使用这个LinkedList 库。对于我的 Arduino,使用 Platformio 编译和上传。

当我尝试编译程序时,我不断收到错误。我事先没有得到任何标志。我认为 LinkedList 库没有任何问题,因为它与我使用的 struct 配合得很好POS。问题似乎出在Shape::Shape(...)构造函数上。

这应该不重要,但是,Shape该类是一个简单的父类,允许Shape在单个列表中混合特定的子类:CircleEllipseLine等。

错误:

0 投票
1 回答
372 浏览

node.js - NODE_PATH 被原子消耗,它取代了我已经到位的 NODE_PATH

我在 Windows 10 环境中为 Atom 文本编辑器编写插件,以允许从 Atom 中通过量角器黄瓜运行测试,它使用 PlatformIO-Terminal 插件提供的服务。当我从 Atom 中激活该终端插件时,我希望能够从中执行任何旧程序,而我可以从它通过 pty 模拟的终端执行任何旧程序。

我在执行我通过 Atom 的 apm 之外的 npm 安装的任何节点程序时遇到问题。通过从该终端打印环境变量 NODE_PATH 进一步挖掘发现,Atom 已经吃掉了我的 NODE_PATH 值,没有附加它自己的值,而是完全消耗并替换了它。从该 pty 窗口中重置它不起作用,并且从 PlatformIO 配置终端中将其添加到“Shell 环境变量”中也不起作用。我已经安装了 3 个允许从操作系统中提取环境变量的插件,但都没有成功。

有没有办法解决这个问题?我可以直接访问可执行模块,但它们调用其他模块并依赖于 NODE_PATH。

0 投票
2 回答
301 浏览

c++ - PlatformIO ATMega324P util/delay.h 不准确

我正在使用 PlatformIO 和 CLion 对 ATMega324P 微控制器进行编程。该项目是在 mac 上使用 PlatformIO 创建的,并在 CLion 中打开。我可以成功构建程序并在 ATMega324p 上运行它。我成功运行了以下代码。

主文件

Platformio.ini

尽管此代码运行延迟似乎明显不准确。我有没有做任何事情来确保延迟正常工作?

0 投票
5 回答
5627 浏览

build - PlatformIO 致命构建错误:LiquidCrystal.h“没有这样的文件或目录”

我对 Atom / PlatformIO 相当陌生,并尝试使用它与 Arduino 一起开发作为 Arduino IDE 的替代品。

~规格~


在尝试使用 LCD 屏幕之前,我已经通过 PlatformIO 在 ESP 模块上成功运行了其他示例代码,但是当我尝试包含 LiquidCrystal.h 库时,它给了我一个构建错误:

到目前为止,在我搜索过的有关此问题的几个站点中,大多数都指向缺少添加“wire.h”头文件,但是即使将其包含到程序中,它仍然给我这个错误。

我的包括如下:

所以我不完全确定为什么会出现这个问题。我该如何解决这个问题?


编辑1:

刚才我遇到了另一个站点,该站点建议尝试通过控制台更新 PlatformIO,但这无济于事。一切都被标记为“最新”。


编辑2:

已经通过 Arduino IDE 编译并运行了这段代码,并且可以确认它可以工作,所以问题似乎出在 PlatformIO IDE ...


编辑3:

在遵循 BMelis 的建议后,我查看了 PlatformIO.ini 文件,并在其中添加了以下行:

这修复了 LiquidCrystal.h 的初始错误,但是这也在构建过程中产生了以下依赖错误:

我尝试通过在 ini 文件中添加第二个 lib_extra_dirs 命令来添加它提到的目录:

然而,这并没有解决问题。我现在不知道该怎么办...


完整代码:

0 投票
4 回答
21787 浏览

visual-studio-code - 如何使用 PlatformIO 更改 VSCode 中串行监视器的默认波特率?

我有 VSCode 和 PlatformIO 插件。当我启动串行监视器时,它总是以 9600 波特率开始。我想改变它,所以它总是以 115200 开头。

我可以通过按 CTRL+T, b, 115200, enter 来更改已经运行的串行监视器的波特率,但我不想每次启动串行监视器时都这样做。

我在任何地方都找不到该设置。我尝试speed = 115200在 platformio.ini 中添加一行,但这并没有改变任何东西。

0 投票
1 回答
437 浏览

esp8266 - 如何在 bitbucket 管道中缓存整个目录(platformio 依赖项)?

我正在运行 CI 管道以使用 plaitformio 和 bitbucket 管道为 ESP8266 构建固件,我的代码构建成功,现在我想缓存包含 platformio 库 (.piolibdeps) 的目录。这是我的 platform.ini 文件的包含内容。

如何在 BitBucket 管道中缓存此目录?请看下面 bitbucket-pipelines.yml 文件的内容,它没有缓存定义的目录,这里有什么问题?

这里是我的文件夹结构。

在此处输入图像描述