起因

在使用esp32c3进行开发的过程中,使用了esp/esp-idf/examples/…中的softAP示例代码为基础,进行代码的添加扩展,
在代码中需要储存整数变量,
使用nvs_flash_init、nvs_get_i32、nvs_close等函数(非易失性存储库)可以储存整数
之后由于esp32c3需要从ap模式转换为sta模式,因此在ap模式中搭建了tcp server来接收ssid、password数据,接收后就需要将数据保存起来,因而使用到了磨损均衡API

解决

根据文档描述找到可用的示例

于是将wear_levelling示例代码中关于FatFs的相关代码合理添加进我的项目代码中,但是在运行过程中报错:

此处报错是在运行到以下函数产生的:

报错原因:分区表不包含具有给定标签的FATFS分区

此处又关于分区表之类的问题,作为一个渣渣我也很蒙逼,要完全搞懂分区表的内容又要花费很大的精力,于是没有去死抓分区表

于是将自己的工程 menuconfig 与 wear_levelling中的menuconfig 进行比较
发现了两处不同之处:
1.


2.



更改后如图所示:

保存配置后退出

本以为大功告成,结果在编译时报错如下:


在编译时缺少了文件 partitions.csv ,想着肯定是与分区相关的文件
并在示例工程wear_levelling中找到了 类似文件partitions_example.csv

文件内容如下:

于是直接把partitions_example.csv 复制到我的工程中,再次尝试编译还是相同的错误

之后在build/build.ninja文件中搜索 partitions相关内容(/partitions +回车)
找到内容如下:

并在wear_levelling工程中build/build.ninja文件同样搜索,得到结果如下:

原来是两个工程编译过程中对于该文件的引用名称不同,
于是将我的工程中复制过来的partitions_example.csv 改名为 partitions.csv

再次尝试编译,成功编译,且成功运行

运行后正常挂载,但在储存时调用fopen()打开文件时报错,


不能打开文件进行写入,经过长时间验证,

想着会不会是示例代码为hello.txt,我的为sta_address.txt,文件名字的问题导致错误
于是将sta_address.txt 改为 address.txt 后可正常打开,确实为文件名的原因

之后再次测试是否为下划线的原因:
将文件名改为 staaddress.txt再次fopen()出错,
但是再次改为sta_adr.txt又正常

 结论:fopen()出错的原因在于文件名,但不是由于下划线,可能是.txt前的名字不能过长.

后来又发现开发文档中存在nsv_get_str()函数,想着只是存小字符串应该用这个就够了,不需要使用fatfs了,花费了两天时间在fatfs运用,但是之后要存储大量数据还是用得着的,也是学习到了一些东西

esp32c3使用FATFS相关推荐

  1. 【HaaS Python适配】AliOS-Things HAAS-Python ESP32-C3开发板适配和编译

    AliOS-Things HAAS-Python ESP32-C3适配和编译 版本:v1.0 作者:乔楚.李志清 日期:2022-04-26 主要处理说明: 引用esp-idf v4.4 独立espr ...

  2. 合宙ESP32C3基于Arduino IDE框架下配置分区表

    合宙ESP32C3基于Arduino IDE框架下配置分区表 关于VSCode PIO配置分区表可以参考示例文章<合宙ESP32C3基于VSCode PIO开发初探教程> 有关Arduin ...

  3. Arduino + ESP32-C3 + TFT(1.8‘ ST7735S)基础平台(实验四)直接显示网络图片

    ---------------------------------------------------------------------------------------------------- ...

  4. 关于FATFS文件系统挂载多个磁盘

    关于FATFS文件系统挂载多个磁盘以及SPI FLASH的应用问题!

  5. cube sdio fatfs 初始化sd卡_Stm32CubeMx配置SDIO+FATFS+FREERTOS

    芯片型号:STM32F427VG 软件版本:Stm32CubeMx 5.6.0 库版本:STM32Cube FW_F4 V1.25.0 配置SDIO: 卡时钟(SDIO_CK ):每个时钟周期在命令和 ...

  6. fatfs文件系统支持中文长文件名

    一.引出 Fatfs文件系统中存在短文件名和长文件名的概念.当文件名的字符长度短于13个字符时,称为短文件名.当长于13个字符则称为长文件名. 如果不配置Fatfs文件系统的长文件名功能,当遇到短于1 ...

  7. FATFS配置长文件名,为何跟编码转换有关

    要打开FATFS的长文件名功能,必须添加OEMCP与Unicode的编码转换函数,同时也就要把OEMCP与Unicode的编码转换数组添加进来,这是为什么呢? OEMCP在936代码页下就是GBK,这 ...

  8. FATFS文件系统框架及源码分析

    FATFS是一个为小型嵌入式系统设计的通用FAT(File Allocation Table)文件系统模块.FatFs 的编写遵循ANSI C,并且完全与磁盘I/O层分开.因此,它独立(不依赖)于硬件 ...

  9. FATFS里的FILINFO结构体详解

    当调用FatFS中的f_readdir函数返回FILINFO值的时候,大家如果直接看FILINFO里面的值可能看不懂.因为里面的值需要大家转换一下,FILINFO的具体格式如下: /* File in ...

最新文章

  1. SAP OData的CSRF校验开关
  2. Handling Errors Exceptionally Well in C++ 在C++中良好地捕获意外的错误
  3. linux 检查mps版本,linux_mps启动流程_存储相关.doc
  4. CnCiswumWN
  5. 下载基于LigerUI+JBPM5自定义表单+Node.js的J2EE大型金融项目《财务预算系统》
  6. 同一主机的多个子进程使用同一个套接字_如何在Go语言中使用Websockets:最佳工具与行动指南...
  7. Hash算法大全(java实现)
  8. 机器学习:HMM:基础
  9. 自抗扰控制matlab仿真,自抗扰控制器的simulink建模与仿真.pdf
  10. 全屏网页时钟屏保flipclock-beautify,简约风格,电脑手机均支持访问
  11. Ubuntu连接不上网络问题的解决方法
  12. ios动态效果实现翻页_iOS实现翻页效果动画
  13. Oracle 11g 修改表的所属表空间
  14. win10每次开机桌面计算机就没有,怎样解决Win10开机需要按F1才能进入桌面
  15. 开源并“免费”的Linux平台DAW——Ardour 4.0发布
  16. 有道云笔记markdown上传本地图片的方法
  17. Android 超高仿微信图片选择器
  18. FileReader()读取文件
  19. 为什么把人称呼为“总”?
  20. 测试设计点(微信红包、朋友圈点赞、视频播放、水杯、提现、筷子、登录)

热门文章

  1. 【个人项目】东北大学软件学院2020级2021年夏季实训项目——东软颐养社区系统
  2. [zz]世界流行 第三代丰田普锐斯广受好评
  3. C++编程,输入密码时显示*号
  4. iOS - 清理缓存
  5. 工具和网络游戏封包基础
  6. 北大青鸟accp培训 :ACCP学员学习心得体会
  7. Eclipse使用Butterknife的相关配置
  8. 在中国万网还有86块钱,能做什么?
  9. ArcGIS中ArcMap导入mxd地图文档文件出现红色感叹号、地图空白的解决
  10. 港股第四家“造车新势力“,零跑汽车通过IPO聆讯