问题标签 [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 回答
216 浏览

c++ - C++ - 编写代码时提示过多

我已经开始使用 Visual Studio Code + PlatformIO。一般来说这对我来说很好,但有一件事让我很烦恼:写作过程中的提示太宽泛了。

例如,如果我输入Serial.,我会看到一个带有提示的框架。它应该是可以与 object Serial: .print, .println,.read等一起使用的可见方法的列表。不幸的是,在这里我看到了所有可能的方法,在我的系统中可用,来自所有库等:

串行的提示。 目的

它使这种帮助毫无用处。该怎么办?


我试图将我的设置与没有此类问题的同事进行比较,并发现了一个差异。我不确定这是否是一个原因,但也许?即:在我的项目中,.vscode 文件夹内有一个部分 c_cpp_properties.json,这是扩展 C/C++ Intellisense 的配置,对吧?这里是: "intelliSenseMode": "clang-x64",根据帮助 clang-x64 适用于 MAC OS。但是我没有MAC!我在带有 W10 的 PC 上安装了这个软件,对于 windows,这个值应该是 msvc-x64。但是如何改变呢?我试着只编辑这个字段,但在重新启动 VSC 后,以前的值会恢复。

0 投票
0 回答
1690 浏览

c++ - xxx“未在此范围内声明”-代码在 Arduino IDE 中有效,但在 Atom/PlatformIO 中无效

在这里编程相对较新,但了解基础知识。

我有一些在 Arduino IDE 中成功使用的代码。在 main 中开始,调用另一个名为 bakerRelay 的函数,传递变量 setTemperature、temperatureC、futureSwitch 和 relayPin。当我在 PlatformIO (VisualCode) 中重新键入它时,我得到“未在此范围内声明”错误。我认为这是一个格式化的东西(我忘记在某处打开或关闭 {},但似乎找不到它。

我已经声明了我的变量,并在 main.cpp 中声明了函数,

在 void 设置之前声明的函数:

void furnaceRelay(float setTemperature, float temperatureC, unsigned long furnaceSwitch, int relayPin);

在这里声明变量

然后在这里调用函数:

这是调用的函数:

我得到的错误是:

标识符millis未定义millis未在此范围内声明标识符digitalWrite未定义LOW未在此范围内声明标识符LOW未定义digitalWrite未在此范围内声明标识符millis未定义millis未在此范围内声明标识符digitalWrite未定义HIGH是未在此范围内声明标识符 HIGH 未定义 digitalWrite 未在此范围内声明

我难住了。我很确定我的所有 {} 都在那里,我还缺少什么?

0 投票
1 回答
496 浏览

platformio - PlatformIO:[upload] Error 2 with esp8266 ESP-07 board

I use VSCODE to create project. I create a project and select ESp-07 board and ESP8266 RTOS SDK framework then create a main.c file in src directory and copy content of main.c file of esp8266-rtos-sdk-blink example to my project main.c file. it compile successfully but when i want to upload it to my board following error occur :

Processing esp07 (platform: espressif8266; framework: esp8266-rtos-sdk; board: esp07)
Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/esp07.html
PLATFORM: Espressif 8266 2.3.2 > Espressif Generic ESP8266 ESP-07
HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
PACKAGES: toolchain-xtensa 1.40802.0 (4.8.2), framework-esp8266-rtos-sdk 1.5.0-beta.5, tool-esptool
1.413.0 (4.13), tool-esptoolpy 1.20800.0 (2.8.0), tool-mkspiffs 1.200.0 (2.0)
LDF: Library Dependency Finder -> bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 0 compatible libraries
Scanning dependencies…<br/> No dependencies
Building in release mode
Retrieving maximum program size .pio\build\esp07\firmware.elf
Checking size .pio\build\esp07\firmware.elf
Advanced Memory Usage is available via “PlatformIO Home > Project Inspect”<br/> DATA: [==== ] 36.3% (used 29754 bytes from 81920 bytes)
PROGRAM: [======= ] 73.9% (used 278664 bytes from 376832 bytes)
Configuring upload protocol…<br/> AVAILABLE: espota, esptool
CURRENT: upload_protocol = esptool
Looking for upload port…<br/> Auto-detected: COM3
Uploading .pio\build\esp07\firmware.bin
esptool.py v2.8
Serial port COM3
Connecting…<br/> Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 5c:cf:7f:33:a6:e6
Uploading stub…<br/> Running stub…<br/> Stub running…<br/> Configuring flash size…<br/> Auto-detected Flash size: 1MB
A fatal error occurred: File C:\Users\MrTavakoli.platformio\packages\framework-esp8266-rtos-sdk\bin\esp_init_data_default.bin (length 128) at offset 4177920 will not fit in 1048576 bytes of flash. Use --flash-size argument, or change flashing address.
*** [upload] Error 2

I test my board with Arduino framework successfully.

Thanks you

0 投票
0 回答
1331 浏览

atom-editor - ATOM/PlatformIO OpenOCD 初始化失败

我正在尝试为我的 3d 打印机上传到板上,并且正在学习一些在线教程;但是,当我尝试上传到板时,我收到以下错误。

我正在运行最新版本的 Windows 10、Atom 和 PlatformIO,该板是 SKR E3 Dip ( https://github.com/bigtreetech/BIGTREETECH-SKR-E3-DIP-V1.0 )。

我努力了

  1. 把板子插到多个USB口,因为网上看好像是USB3有问题
  2. 更新驱动程序

有关其他故障排除的任何建议?

0 投票
1 回答
714 浏览

esp8266 - 上传文件系统到 ESP-WROOM-02

我的项目包含 SSL 证书的数据适合我的测试d1 (ESP8266MOD)板,没有问题。我尝试将相同的系统上传到ESP-WROOM-02系统,但失败并出现错误:

d1 (ESP8266MOD)板自动检测 4mb 闪存,而ESP-WROOM-02只有 2mb。我只在目录中留下了一个小文件,data但仍然出现同样的错误。这是否意味着我根本无法将文件系统上传到我ESP-WROOM-02的?我正在将 SPIFFS 用于文件系统。如何解决这个问题呢?

ESP-WROOM-02上传日志:

d1 (ESP8266MOD)上传日志:

0 投票
1 回答
923 浏览

c++ - 类没有命名带有标头保护的类型

由于错误,我需要在我的 Header 文件和 Cpp 中实现一个 header 保护,因为在我不知道出了什么问题之前我从未使用过它,因为在某些类上它可以工作,而在一个类上它就不会......最初问题更大,但我认为我将其范围缩小到问题的根源。

LedHandler.h

LedHandler.cpp

主文件

错误

0 投票
1 回答
57 浏览

configuration - PlatformIO 可能的键 upload_flags & upload_command 字符串选项

我使用 STM32F429ZI 和 PlatformIO,我需要将固件上传到特定地址,例如 0x08020000。而且我无法在 platformio 上的文档中找到可以使用的 upload_flags 密钥,或者如何修改 upload_command 。谢谢。

0 投票
1 回答
31 浏览

c++ - 从串口读取的数据长度始终为 1

尝试从串行读取字节到缓冲区:

即使它发送的数据是长字符串,我也总是进去1len奇怪的是我发现了整个长字符串数据buf,而我仍然有len==1

为什么?如何解决?

0 投票
0 回答
98 浏览

mbed - 已编译二进制文件中的计算机路径

我正在使用 mbed 框架在 Platformio 中开发一个项目,我在编译的二进制文件中找到了我的计算机路径,例如:

我可以在上述文件中找到错误字符串,它指向 .platformio\packages\framework-mbed\platform\mbed_error.h。这个文件说

所以我尝试在发布模式下编译,但没有任何变化。我还尝试将它放在我的 main.cpp 之上:

请注意,有 2 个类似的定义,我在我的构建目录中的自动生成(因此不可编辑)mbed_config.h 中找到了另一个,我相信这是正确的,因为我可以找到它用于 mbed_error .h (因此该文件顶部的注释是错误的)。

我尝试在我能想到的所有路径中找到该定义,但我找不到自动生成 mbed_config.h 文件的代码。

我也试过

但它仍然显示完整路径。

如何在不显示文件完整路径的情况下编译我的二进制文件?

0 投票
1 回答
48 浏览

std - SSCANF 怎么会提供如此奇怪的结果?

我与此代码进行了为期 4 天的战斗:

它返回:

资源:5
波特率:115200,数据位:0,停止:1,
奇偶校验:
flowctrl:NFC

缺少数据位奇偶校验

实际上奇偶校验变量下的内存是'\0'VEN'\0',看起来第一个字符被sscanf过程以某种方式覆盖。

sscanf 的返回值为 5,这表明它能够解析输入。

我的配置:

  • gccarmoneeabi 7.2.1
  • 视觉工作室代码 1.43.2
  • PlatformIO 核心 4.3.1
  • PlatformIO 主页 3.1.1
  • 库 ST-STM 6.0.0 (Mbed 5.14.1)
  • STM32F446RE (Nucleo-F446RE)

我试过(没有成功):

  • 使用 mbed RTOS 编译且不使用
  • 变量类型 uint8_t, uint32_t
  • gccarm 版本:6.3.1、8.3.1、9.2.1
  • 使用另一个 IDE (CLion+PlatformIO)
  • 在另一台计算机上编译(相同的配置)

实际上有什么帮助:

  • 使变量静态
  • 在 Mbed 在线编译器中编译

sscanf 的行为总体上是非常不可预测的,混合变量的顺序或数据类型有时会有所帮助,但通常以输出中的另一个缺陷结束。