VSCode(PlatformIO)上 ESP8266-01S 上的闪存大小问题
Posted
技术标签:
【中文标题】VSCode(PlatformIO)上 ESP8266-01S 上的闪存大小问题【英文标题】:Problem with Flash size on ESP8266-01S on VSCode (PlatformIO) 【发布时间】:2022-01-11 05:16:53 【问题描述】:我在 VSCode 上使用 PlatformIO 对我的 ESP8266-01S 进行编程时遇到问题。实际上,它在 Arduino 上运行良好,但我想使用 VSCode,因为它更舒服(而且它不适用于 VSCode!)。 当我在两个软件之间上传代码时,我注意到终端有所不同。让我告诉你:
这就是我在 Arduino 上得到的:
esptool.py v3.0
Serial port COM16
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: ec:fa:bc:27:2d:0a
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 1MB
Compressed 265056 bytes to 195069...
Writing at 0x00000000... (8 %)
Writing at 0x00004000... (16 %)
Writing at 0x00008000... (25 %)
Writing at 0x0000c000... (33 %)
Writing at 0x00010000... (41 %)
Writing at 0x00014000... (50 %)
Writing at 0x00018000... (58 %)
Writing at 0x0001c000... (66 %)
Writing at 0x00020000... (75 %)
Writing at 0x00024000... (83 %)
Writing at 0x00028000... (91 %)
Writing at 0x0002c000... (100 %)
Wrote 265056 bytes (195069 compressed) at 0x00000000 in 19.9 seconds (effective 106.3 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
这就是我在 VSCode 上得到的:
esptool.py v3.0
Serial port COM16
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: ec:fa:bc:27:2d:0a
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Compressed 265056 bytes to 195047...
Writing at 0x00000000... (8 %)
Writing at 0x00004000... (16 %)
Writing at 0x00008000... (25 %)
Writing at 0x0000c000... (33 %)
Writing at 0x00010000... (41 %)
Writing at 0x00014000... (50 %)
Writing at 0x00018000... (58 %)
Writing at 0x0001c000... (66 %)
Writing at 0x00020000... (75 %)
Writing at 0x00024000... (83 %)
Writing at 0x00028000... (91 %)
Writing at 0x0002c000... (100 %)
Wrote 265056 bytes (195047 compressed) at 0x00000000 in 20.0 seconds (effective 106.2 kbit/s)...
Hash of data verified.
Leaving...
Soft resetting...
您可以看到重置存在差异(但我已经看到这不是问题),并且我们不使用的 Arduino 上的“自动检测闪存大小:1MB”也存在差异在 VSCode 上没有。我不知道这是否是一个真正的问题......
也许你能帮助我...非常感谢!!
【问题讨论】:
您在使用 ESP 和 PlatformIO 时遇到的实际问题是什么? 抱歉,不够清楚......观察到的问题是我尝试使用 VSCode/PlatformIO 上传我的代码,当我这样做时,板“反应”很好(内置 LED 切换一点),但就像我没有上传任何代码(我的代码没有执行)......这只是一个简单的代码(切换内置的led)。但这在 Arduino 上运行良好......我希望你能理解......非常感谢你 我问是因为我不相信问题与闪存大小或您问题的两个日志中显示的任何其他内容有关。刷机完成后,您是否尝试过按下 ESP 板上的重置按钮?你能告诉我们你的platformio.ini
内容吗?当代码有效时,您在 Arduino IDE 中选择了哪个特定的板?
因为是ESP8266-01S板子,所以没有reset按钮(我用的是CH340编程器,把GPIO0和GND连在一起进入flash模式,但是我所有的硬件程序应该没问题它正在使用 Arduino)。以下是我的“platformio.ini”文件:[env:esp01_1m] platform = espressif8266 board = esp01_1m framework = arduino
最后我选择了 PlatformIO 上的 Espressif Generic ESP8266 ESP-01 1M 板,以及 Generic ESP8266 Module 板在 Arduino 上。
【参考方案1】:
我认为这与您提供的 cmets 的闪存大小无关。
如果您在 Arduino IDE 上的设置是 Generic ESP8266 Module
并且它正在工作,则意味着 LED_BUILTIN
配置在 GPIO1 上,如 Arduino ESP8266 内核的 source code 所示。
这意味着您使用的是 EPS-01 而不是 ESP-01S。 ESP-01 和 ESP-01S 之间的区别之一是 LED_BUILTIN
连接到不同的 GPIO 引脚。 ESP-01 的 LED_BUILTIN
连接到 GPIO1,而 ESP-01S 的 LED_BUILTIN
连接到 GPIO2。
这个picture 显示了 ESP-01 和 ESP-01S 之间的区别,视觉上 ESP-01 在天线附近有 2 个 LED,而 ESP-01S 在插头引脚和 ESP8266EX 芯片之间有两个额外的电阻,并且只有靠近天线的一个 LED。
更简单的修复方法
更简单的解决方法是定义您自己的引脚分配,而不是使用预定义的LED_BUILTIN
。
#define LED 2
void setup()
pinMode(LED, OUTPUT);
void loop()
digitalWrite(LED, HIGH);
// other codes
对于 ESP-01,您还可以选择 LED_BUILTIN 定义为 2 的板。例如,d1 mini 基于 ESP-12 引脚排列,但也适用于 ESP-01。
【讨论】:
我不知道这种差异。所以现在它在 GPIO2 上与我的 ESP-01S 配合良好(它不适用于 PlatformIO 上的LED_BUILTIN
,但我不会抱怨!LED_BUILTIN
正在使用 Arduino ...)。但它仍然无法与我的 ESP-01 新版本(1MB 闪存)一起使用......但至少,PlatformIO 上有些东西,有一些改进!非常感谢 !对 ESP-01 新版本有任何想法吗? (该板在 Arduino 上也一切正常)
我明白为什么LED_BUILTIN
不能在 PlatformIO 上工作:当我把鼠标放在它上面时,我在信息框#define LED_BUILTIN 1
中看到了。如您所说,在 ESP-01S 上它不工作是正常的,因为内部 LED 连接到 GPIO2 上。你知道我可以改变它的文件在哪里吗?这不是什么大问题,ESP-01 新版本不能在 PlatformIO 上运行对我来说是一个更大的问题。
我更新了关于如何修复它的答案。请看一下。顺便说一句,如果这回答了您的问题,感谢您可以通过单击勾选或投票来接受它作为答案。
好的,非常感谢,我有这样做的想法,但我觉得有点太容易了:它最终没有解决问题......而且ESP-01仍然没有'不工作。但是您发现我的 ESP-01S 存在问题,所以我可以认为问题已解决。但如果有人知道为什么 ESP-01 不能在 PlatformIO 上运行,我很乐意与您讨论。以上是关于VSCode(PlatformIO)上 ESP8266-01S 上的闪存大小问题的主要内容,如果未能解决你的问题,请参考以下文章
使用VScode开发ESP32,PlatformIO开发ESP32
ESP32 /ESP8266在VS Code and PlatformIO上传文件系统 (SPIFFS)
LGVL配合FreeType为可变字体设置字重-ESP32篇