完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用ESP32的NVS-BLOB存储12000个字节数据,每次完全擦除flash后编程写第一次都没问题,但之后再写就报错误ESP_ERR_NVS_NOT_ENOUGH_SPACE (0x1105): There is not enough space in the underlying storage to save the value
但每次读出都问题,数量也对,重新上电也不行,请问这是什么原因呢?使用的是IDF4.3稳定版本 |
|
相关推荐
1个回答
|
|
根据您提供的信息,您在使用ESP32的NVS-BLOB存储12000个字节数据时遇到了问题。错误代码为ESP_ERR_NVS_NOT_ENOUGH_SPACE (0x1105),表示底层存储空间不足。以下是一些可能的原因和解决方案:
1. **NVS分区大小不足**:请检查您的NVS分区大小是否足够存储12000字节的数据。如果分区大小不足,您需要增加分区大小。在`menuconfig`中,您可以找到`Partition Table`设置,然后调整NVS分区的大小。 2. **数据碎片**:在多次写入和删除操作后,NVS存储可能会出现数据碎片,导致实际可用空间减少。您可以尝试以下方法来解决这个问题: - 使用`nvs_flash_erase()`函数完全擦除NVS存储,然后重新写入数据。 - 使用`nvs_flash_init()`函数初始化NVS存储,它会自动清理无效的键。 3. **写入操作未成功完成**:请确保每次写入操作都成功完成。您可以在写入操作后检查返回值,如果返回值不是ESP_OK,则表示写入失败。此时,您需要找出写入失败的原因并解决。 4. **ESP-IDF版本问题**:您提到使用的是ESP-IDF 4.3稳定版本。尽管这是一个稳定版本,但可能仍然存在一些已知或未知的问题。您可以尝试升级到最新版本的ESP-IDF,看看问题是否得到解决。 5. **代码问题**:请检查您的代码,确保在使用NVS-BLOB存储时遵循了正确的步骤和API调用。例如,确保在写入数据之前正确地打开了NVS处理程序,使用正确的键名,以及在写入完成后正确地关闭了NVS处理程序。 综上所述,您可以尝试调整NVS分区大小、清理数据碎片、确保写入操作成功、升级ESP-IDF版本以及检查代码。希望这些建议能帮助您解决问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
436 浏览 1 评论
1319 浏览 1 评论
600浏览 6评论
499浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
481浏览 5评论
482浏览 4评论
466浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-16 11:59 , Processed in 0.841988 second(s), Total 45, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号