乐鑫技术交流
直播中

蒲泛粟

8年用户 993经验值
私信 关注
[问答]

使用带有2MB板载闪存的ESP-WROOM-S2,无法让用户代码从板载闪存工作怎么解决?

我打算在我的项目中使用带有 2MB 板载闪存的 ESP-WROOM-S2,但我似乎无法让用户代码从板载闪存工作。
与其他模块的不同之处在于,S2 已通过闪存连接到 HSPI(与 SPI 相对)。
我可以通过官方工具(HSPIDownload)刷入它。使用手册中的正确设置。
从下面的照片来看,引导模式首先应该是 SDIO/SPI,所以 MTDO (GPIO15) High 和 rest 不在乎当我这样做时,我得到:

代码:全选13:57:05.061 ->  ets Jan  8 2013,rst cause:2, boot mode:(7,6)
13:57:05.061 ->
13:57:05.061 -> waiting for host

我永远无法让用户代码工作。哎呀,我会感到惊讶,因为 GPIO15 还控制反转的芯片选择,因此将其设置为高电平会禁用板载闪存
设置模式以闪存启动只会删除“等待主机”行并且不会启动。
我勒个去?那么内置闪光灯有什么用呢?
硬件评估板pdf需要发送boot.bin。但我希望它作为独立设备运行!
请帮我澄清我在哪里弄错了,或者 ESP-WROOM-S2 是否不能用作独立设备(如 NodeMCU、ESP-12E 等)

               


                        

回帖(1)

江根磊

2023-10-12 09:35:54
解决方案:

您需要在配置代码中使用SPIFFS或LittleFS文件系统,并将您的代码编写为从闪存加载和运行。以下是一些步骤,可帮助您实现此目标:

1.首先,您需要在Arduino IDE中安装ESP8266/ESP32 Filesystem插件。这个插件将允许您在ESP中使用SPIFFS或LittleFS文件系统。

2.接下来,您需要将SPIFFS或LittleFS文件系统编译到您的ESP-WROOM-S2中。您可以使用ESP8266FS或LittleFS Arduino库来完成此操作。

3.在您的代码中,您需要加载您的程序从闪存中,并使用文件系统API来访问和读取文件。以下是一些代码示例,可帮助您更好地理解如何实现:

```
#include "FS.h"

void setup() {
  SPIFFS.begin(); // or LittleFS.begin(), depending on which file system you're using
  
  File file = SPIFFS.open("/example.txt", "r");
  if (!file) {
    Serial.println("Failed to open file");
  }

  while (file.available()) {
    Serial.write(file.read());
  }

  file.close();
}

void loop() {
  // your code here
}
```

这将打开名为“example.txt”的文件,并使用Serial.write()将其内容发送到串行监视器。您可以根据自己的需要进行更改。

希望这可以帮助您解决问题。如果您仍然遇到困难,请随时联系我们,我们将尽力为您提供帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分