esp32c3使用FATFS
起因
在使用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相关推荐
- 【HaaS Python适配】AliOS-Things HAAS-Python ESP32-C3开发板适配和编译
AliOS-Things HAAS-Python ESP32-C3适配和编译 版本:v1.0 作者:乔楚.李志清 日期:2022-04-26 主要处理说明: 引用esp-idf v4.4 独立espr ...
- 合宙ESP32C3基于Arduino IDE框架下配置分区表
合宙ESP32C3基于Arduino IDE框架下配置分区表 关于VSCode PIO配置分区表可以参考示例文章<合宙ESP32C3基于VSCode PIO开发初探教程> 有关Arduin ...
- Arduino + ESP32-C3 + TFT(1.8‘ ST7735S)基础平台(实验四)直接显示网络图片
---------------------------------------------------------------------------------------------------- ...
- 关于FATFS文件系统挂载多个磁盘
关于FATFS文件系统挂载多个磁盘以及SPI FLASH的应用问题!
- cube sdio fatfs 初始化sd卡_Stm32CubeMx配置SDIO+FATFS+FREERTOS
芯片型号:STM32F427VG 软件版本:Stm32CubeMx 5.6.0 库版本:STM32Cube FW_F4 V1.25.0 配置SDIO: 卡时钟(SDIO_CK ):每个时钟周期在命令和 ...
- fatfs文件系统支持中文长文件名
一.引出 Fatfs文件系统中存在短文件名和长文件名的概念.当文件名的字符长度短于13个字符时,称为短文件名.当长于13个字符则称为长文件名. 如果不配置Fatfs文件系统的长文件名功能,当遇到短于1 ...
- FATFS配置长文件名,为何跟编码转换有关
要打开FATFS的长文件名功能,必须添加OEMCP与Unicode的编码转换函数,同时也就要把OEMCP与Unicode的编码转换数组添加进来,这是为什么呢? OEMCP在936代码页下就是GBK,这 ...
- FATFS文件系统框架及源码分析
FATFS是一个为小型嵌入式系统设计的通用FAT(File Allocation Table)文件系统模块.FatFs 的编写遵循ANSI C,并且完全与磁盘I/O层分开.因此,它独立(不依赖)于硬件 ...
- FATFS里的FILINFO结构体详解
当调用FatFS中的f_readdir函数返回FILINFO值的时候,大家如果直接看FILINFO里面的值可能看不懂.因为里面的值需要大家转换一下,FILINFO的具体格式如下: /* File in ...
最新文章
- SAP OData的CSRF校验开关
- Handling Errors Exceptionally Well in C++ 在C++中良好地捕获意外的错误
- linux 检查mps版本,linux_mps启动流程_存储相关.doc
- CnCiswumWN
- 下载基于LigerUI+JBPM5自定义表单+Node.js的J2EE大型金融项目《财务预算系统》
- 同一主机的多个子进程使用同一个套接字_如何在Go语言中使用Websockets:最佳工具与行动指南...
- Hash算法大全(java实现)
- 机器学习:HMM:基础
- 自抗扰控制matlab仿真,自抗扰控制器的simulink建模与仿真.pdf
- 全屏网页时钟屏保flipclock-beautify,简约风格,电脑手机均支持访问
- Ubuntu连接不上网络问题的解决方法
- ios动态效果实现翻页_iOS实现翻页效果动画
- Oracle 11g 修改表的所属表空间
- win10每次开机桌面计算机就没有,怎样解决Win10开机需要按F1才能进入桌面
- 开源并“免费”的Linux平台DAW——Ardour 4.0发布
- 有道云笔记markdown上传本地图片的方法
- Android 超高仿微信图片选择器
- FileReader()读取文件
- 为什么把人称呼为“总”?
- 测试设计点(微信红包、朋友圈点赞、视频播放、水杯、提现、筷子、登录)
热门文章
- 【个人项目】东北大学软件学院2020级2021年夏季实训项目——东软颐养社区系统
- [zz]世界流行 第三代丰田普锐斯广受好评
- C++编程,输入密码时显示*号
- iOS - 清理缓存
- 工具和网络游戏封包基础
- 北大青鸟accp培训 :ACCP学员学习心得体会
- Eclipse使用Butterknife的相关配置
- 在中国万网还有86块钱,能做什么?
- ArcGIS中ArcMap导入mxd地图文档文件出现红色感叹号、地图空白的解决
- 港股第四家“造车新势力“,零跑汽车通过IPO聆讯