问题标签 [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++ - 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 后,以前的值会恢复。
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 未在此范围内声明
我难住了。我很确定我的所有 {} 都在那里,我还缺少什么?
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
atom-editor - ATOM/PlatformIO OpenOCD 初始化失败
我正在尝试为我的 3d 打印机上传到板上,并且正在学习一些在线教程;但是,当我尝试上传到板时,我收到以下错误。
我正在运行最新版本的 Windows 10、Atom 和 PlatformIO,该板是 SKR E3 Dip ( https://github.com/bigtreetech/BIGTREETECH-SKR-E3-DIP-V1.0 )。
我努力了
- 把板子插到多个USB口,因为网上看好像是USB3有问题
- 更新驱动程序
有关其他故障排除的任何建议?
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)
上传日志:
c++ - 类没有命名带有标头保护的类型
由于错误,我需要在我的 Header 文件和 Cpp 中实现一个 header 保护,因为在我不知道出了什么问题之前我从未使用过它,因为在某些类上它可以工作,而在一个类上它就不会......最初问题更大,但我认为我将其范围缩小到问题的根源。
LedHandler.h
LedHandler.cpp
主文件
错误
configuration - PlatformIO 可能的键 upload_flags & upload_command 字符串选项
我使用 STM32F429ZI 和 PlatformIO,我需要将固件上传到特定地址,例如 0x08020000。而且我无法在 platformio 上的文档中找到可以使用的 upload_flags 密钥,或者如何修改 upload_command 。谢谢。
c++ - 从串口读取的数据长度始终为 1
尝试从串行读取字节到缓冲区:
即使它发送的数据是长字符串,我也总是进去1
。len
奇怪的是我发现了整个长字符串数据buf
,而我仍然有len==1
。
为什么?如何解决?
mbed - 已编译二进制文件中的计算机路径
我正在使用 mbed 框架在 Platformio 中开发一个项目,我在编译的二进制文件中找到了我的计算机路径,例如:
我可以在上述文件中找到错误字符串,它指向 .platformio\packages\framework-mbed\platform\mbed_error.h。这个文件说
所以我尝试在发布模式下编译,但没有任何变化。我还尝试将它放在我的 main.cpp 之上:
请注意,有 2 个类似的定义,我在我的构建目录中的自动生成(因此不可编辑)mbed_config.h 中找到了另一个,我相信这是正确的,因为我可以找到它用于 mbed_error .h (因此该文件顶部的注释是错误的)。
我尝试在我能想到的所有路径中找到该定义,但我找不到自动生成 mbed_config.h 文件的代码。
我也试过
但它仍然显示完整路径。
如何在不显示文件完整路径的情况下编译我的二进制文件?
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 的行为总体上是非常不可预测的,混合变量的顺序或数据类型有时会有所帮助,但通常以输出中的另一个缺陷结束。