问题标签 [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 投票
0 回答
90 浏览

c++ - 构建时未找到包含的库

我有以下文件:

主.cpp:

EEPROMManager.h:

EEPROMManager.cpp:

当我建立:

如果我仅在 EEPROMManager.cpp 中包含 EEPROM.h,则代码构建没有任何问题。一旦它包含在 EEPROMManager.h 中,构建就会失败。如果我只将它包含在 EEPROMManager.h 中,则构建失败。

显然,我不了解依赖项是如何工作的,但我无法弄清楚。

编辑:

EEPROM.h 是 Platformio 中 Arduino 框架的一部分。它位于:

我检查了 c_cpp_properties.json,上面的路径包括在内。包含完整路径而不是 EEPROM.h 可以解决此问题。这似乎是一个 PlatformIO 配置问题,但我无法弄清楚是什么导致了问题。

0 投票
0 回答
69 浏览

c++ - 无法为 atmega 2560 编译 arduino 草图 vscode

0 投票
0 回答
385 浏览

c++ - 如何在不闪烁的情况下为 ESP32 运行单元测试?

从其他语言和平台了解到,我们希望在代码写入硬件之前在构建过程中使用单元测试。对于不需要 ESP32 硬件的简单功能测试,这应该是可能的。

但据我们了解,C++ 代码是为 ESP32 芯片编译(和链接)的,不应在开发系统或 CI/CD 管道中运行。

有什么方法可以模拟 ESP32(用于 C++)或在其他系统上以任何其他方式运行单元测试?


注意:我们正在使用“platformio”进行构建。

0 投票
1 回答
511 浏览

nodemcu - 我可以使用 PlatformIO 扩展在 VS Code 中创建 NodeMCU 项目吗?

我正在尝试使用 ESP-32 开发套件来控制 WS2812 LED 灯条。发现这些开发套件有一些名为 NodeMCU 的固件,据我所知,它使用 LUA 脚本。VS Code 有一个名为 PlatformIO 的扩展。我曾用它来对 Arduino 板进行编程以使 LED 闪烁。

我想知道是否可以使用 PlatformIO 构建 NodeMCU 固件和 LUA 脚本,然后使用 PlatformIO 将所有内容下载到 ESP-32 开发套件。那可能吗?

我认为这无法完成,因为当我创建一个未列出 NodeMCU 的项目时,只有两个框架选择“Arduino”和“ESP-IDF”。

谢谢

0 投票
2 回答
803 浏览

c - 为什么 sprintf() 会生成问号字符作为输出?

在处理嵌入式项目时,我注意到sprintf()以下代码的方法:

生成问号字符作为输出。

从上面的代码生成的输出是:

而输入被声明为double Voltage1 = 0.0;

在尝试格式化整数时,同样的问题似乎并不适用。
以下按预期工作:

并输出POSITION 3其中Position是全局变量并声明为int

实际保存数据的结构是:

以上都是针对 VS Code使用C/C++Platform.io扩展。

这里出了什么问题?

0 投票
1 回答
161 浏览

esp32 - Esp32 基于 Arduino SPIFFS 的静态 Web 地址区分大小写

我正在尝试通过 PlatformIO 在 ESP32 上创建一个静态网络服务器。我正在使用 PlatformIO 中内置的“上传文件系统”任务来上传 www 文件夹。然后我用它server.serveStatic("/", SPIFFS, "/www/");来服务页面。问题是 url 区分大小写,我需要它们不区分大小写。

我认为这是由于底层的 SPIFFS 文件系统,为了修复它,我应该以某种方式改变它。

0 投票
2 回答
655 浏览

c++ - 重新定义 printf()、sprintf() 等 arm-none-eabi 工具链

我正在使用 gcc-arm-none-eabi 工具链(当前为 7.2.1)设置和环境。这适用于 ARM cortex M4 嵌入式设备。

我想为整个项目重新定义 printf,但我遇到了麻烦。我想使用这个实现。我已经将它安装到项目中,我可以通过调用来使用它,例如:printf_("Test: %i",5);并且一切都按预期工作。

现在我想将它设置为默认的 printf 函数。如果我取消注释: #define printf printf_,我会收到以下错误:

稍后的:

在那个文件中,我找到了这一行:

当我注释掉该行时,项目构建,并且 printf 工作。这很好,但我想在不修补工具链的情况下拥有我的项目功能。

我该怎么做呢?还有哪些信息会有所帮助?

0 投票
1 回答
72 浏览

c++ - 为什么在尝试将代码上传到我的 Arduino 时出现验证错误?

我正在建造一辆 Arduino 汽车,它可以避开障碍物,当我尝试从 Atom 的 PlatformIO 包将代码上传到我的 Arduino 时,我收到如下错误消息:

avrdude:正在 验证...
avrdude: 验证 错误, 第一个 不匹配 字节0x0aaa 0x68 != 0x60 avrdude 验证错误;内容不匹配

完成 了。 谢谢你。

几天前无缘无故开始发生这种情况。它运行良好,突然我开始收到此错误消息。

我的代码是:

谢谢你。

0 投票
0 回答
357 浏览

gdb - 使用 J-Link 在 PlatformIO 上调试失败

我正在尝试使用 J-Link 在 vscode 上设置 platformIO 的调试环境,以与 STM32f407ZG 芯片配合使用。

它可以构建和上传。但是每次我尝试调试它都会抛出这样的错误

我的 platformio.ini 看起来像这样:

我到底在哪里做错了,接下来我应该怎么做才能让它发挥作用?

0 投票
1 回答
1331 浏览

visual-studio-code - 如何在 Windows 10 上使用 VSCode 设置 Atmel-ICE 在 PlatformIO 上对 ATmega328 进行编程

我正在尝试将我的 atmel ICE 与 platformIO 和 VS Code 一起使用,而不是 Atmel Studio,因为当我想将 Arduino.h 与库一起使用时,这个软件很痛苦。

但是我不能用我的程序员上传。我尝试使用 32 针 ATmega328。

我首先在此页面上使用了 PIO 关于如何使用 Atmel-ICE 的文档:https ://docs.platformio.org/en/latest/plus/debug-tools/atmel-ice.html

所以这就是我在我的文件中写的:

当我在 PIO 上运行上传命令时,我收到了这条消息:

那时我不确定要尝试什么。我尝试了下面描述的几件事,但我不确定我是否走在正确的轨道上。例如,与 Arduino 相比,atmel ICE 程序员没有与之关联的 USB 端口号,所以我不知道应该如何在我的 .ini 文件中指定我的 upload_port 参数。

platformIO 文档https://docs.platformio.org/en/latest/projectconf/section_env_upload.html中描述了一些选项, 但我完全迷失了。我觉得我得到的信息是:对于某些开发平台,它可以是 USB 闪存驱动器(即 /media//)可能是一个很好的线索。知道我应该在我的 .ini 文件中更改什么以使我的 atmel ICE 工作吗?谢谢!


我尝试过的其他事情:我在一篇帖子上读到(对不起,我再也找不到链接了)添加

可以解决问题。将此行添加到我的 platformio.ini 时,我收到一条不同的错误消息:

而这样的例子不胜枚举..

我搜索并找到了这个帖子,它有同样的错误信息!: https ://community.platformio.org/t/atmega-328-internal-8mhz-oscillator-atmel-ice-upload-troubles/10416

这里的解决方案是添加

但这对我没有任何改变。

他还提到他对 328p8m.json 文件进行了更改,在我的例子中是 ATmega328P.json。我什至不知道在哪里可以找到它。这有关系吗?