乐鑫技术交流
直播中

刘勇

7年用户 1331经验值
私信 关注
[问答]

Sming fileSetContens有时会重置ESP-WROOM-02,为什么?

我正在开发的应用程序,我正在尝试使用以下方法将 WiFi 凭据保存在 SPI 文件系统上:

void ApplicationSettingsStorage::saveFunction(void *参数)
{
    Serial.println("Saving settings...");

    const String json=getJson(false,
                              true); // Passwords are saved, timestamps are updated on every save.

    Serial.println(json);

    /*
     * Excluded reasons for bug:
     *     - NON-NULL Terminated String: I've explicitliy added "�" to json variable before saving it to file,
     *                                   same result, random reset
     *     - Memory corruption:

    文件集内容(APP_SETTINGS_FILE,
                   json);   // BUG: Here occurs random reset !!!
}   // saveFunction

现在,呼叫文件集内容力整个 ESP-WROOM-02有时要重置在随机场合。为什么?
                                                                                                               

回帖(1)

旧念

2024-7-8 11:36:12
ESP-WROOM-02模块重置的原因可能有多种。在您的情况下,使用Sming框架的FileSetContents函数可能会导致重置。以下是一些可能的原因和解决方案:

1. **文件系统空间不足**:如果SPI文件系统的空间不足,尝试写入文件可能会导致模块重置。请确保您的文件系统有足够的空间来存储WiFi凭据。

2. **文件写入错误**:在写入文件时,可能会遇到错误,如文件不存在或权限问题。请检查您的代码,确保文件路径和权限正确。

3. **SPI闪存磨损**:SPI闪存具有有限的写入次数。如果频繁写入同一位置,可能会导致模块重置。尝试优化您的代码,减少不必要的写入操作。

4. **电源不稳定**:如果电源不稳定,可能会导致模块重置。确保您的电源供应稳定,以避免这种情况。

5. **代码逻辑问题**:检查您的代码逻辑,确保在调用FileSetContents函数之前,已经正确初始化了SPI文件系统和相关资源。

6. **Sming框架问题**:如果您怀疑是Sming框架的问题,可以尝试更新到最新版本,或者在Sming社区寻求帮助。

为了解决这个问题,您可以尝试以下方法:

1. **优化代码**:确保您的代码逻辑正确,减少不必要的写入操作。

2. **检查文件系统空间**:确保SPI文件系统有足够的空间来存储WiFi凭据。

3. **使用异常处理**:在调用FileSetContents函数时,使用try-catch块来捕获可能的异常,并在出现异常时进行适当的处理。

4. **监控电源供应**:确保您的电源供应稳定,以避免模块重置。

5. **更新Sming框架**:如果您怀疑是Sming框架的问题,请尝试更新到最新版本。


举报

更多回帖

×
20
完善资料,
赚取积分