问题标签 [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.
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 配置问题,但我无法弄清楚是什么导致了问题。
c++ - 如何在不闪烁的情况下为 ESP32 运行单元测试?
从其他语言和平台了解到,我们希望在代码写入硬件之前在构建过程中使用单元测试。对于不需要 ESP32 硬件的简单功能测试,这应该是可能的。
但据我们了解,C++ 代码是为 ESP32 芯片编译(和链接)的,不应在开发系统或 CI/CD 管道中运行。
有什么方法可以模拟 ESP32(用于 C++)或在其他系统上以任何其他方式运行单元测试?
注意:我们正在使用“platformio”进行构建。
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”。
谢谢
c - 为什么 sprintf() 会生成问号字符作为输出?
在处理嵌入式项目时,我注意到sprintf()
以下代码的方法:
生成问号字符作为输出。
从上面的代码生成的输出是:
而输入被声明为double Voltage1 = 0.0;
在尝试格式化整数时,同样的问题似乎并不适用。
以下按预期工作:
并输出POSITION 3
其中Position
是全局变量并声明为int
。
实际保存数据的结构是:
以上都是针对 VS Code使用C/C++ 和Platform.io扩展。
这里出了什么问题?
esp32 - Esp32 基于 Arduino SPIFFS 的静态 Web 地址区分大小写
我正在尝试通过 PlatformIO 在 ESP32 上创建一个静态网络服务器。我正在使用 PlatformIO 中内置的“上传文件系统”任务来上传 www 文件夹。然后我用它server.serveStatic("/", SPIFFS, "/www/");
来服务页面。问题是 url 区分大小写,我需要它们不区分大小写。
我认为这是由于底层的 SPIFFS 文件系统,为了修复它,我应该以某种方式改变它。
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 工作。这很好,但我想在不修补工具链的情况下拥有我的项目功能。
我该怎么做呢?还有哪些信息会有所帮助?
c++ - 为什么在尝试将代码上传到我的 Arduino 时出现验证错误?
我正在建造一辆 Arduino 汽车,它可以避开障碍物,当我尝试从 Atom 的 PlatformIO 包将代码上传到我的 Arduino 时,我收到如下错误消息:
avrdude:正在 验证...
avrdude: 验证 错误, 第一个 不匹配 字节0x0aaa 0x68 != 0x60 avrdude :验证错误;内容不匹配
完成 了。 谢谢你。
几天前无缘无故开始发生这种情况。它运行良好,突然我开始收到此错误消息。
我的代码是:
谢谢你。
gdb - 使用 J-Link 在 PlatformIO 上调试失败
我正在尝试使用 J-Link 在 vscode 上设置 platformIO 的调试环境,以与 STM32f407ZG 芯片配合使用。
它可以构建和上传。但是每次我尝试调试它都会抛出这样的错误
我的 platformio.ini 看起来像这样:
我到底在哪里做错了,接下来我应该怎么做才能让它发挥作用?
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。我什至不知道在哪里可以找到它。这有关系吗?