STM32使用FATFS文件系统遇到的问题及解决办法

本文讲述了在使用串口助手调试过程中遇到的文件写失败问题,通过解读返回的FRESULT值7,发现是由于试图以只读模式写入文件。作者解决了这个问题,介绍了如何正确选择读写模式,并给出了打开文件的指令示例。最终成功实现了文件读取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题1.使用串口助手调试时,打开文件成功,读取成功,但写不成功。

在这里插入图片描述

解决办法:

可以看到返回的FRESULT res=7,打开ff.h看返回值为7的含义。
在这里插入图片描述FR_DENIED, /* (7) Access denied due to prohibited access or directory full */

百度得知出现此错误的原因:

FR_DENIED——由于下列原因,所需的访问被拒绝:
以写模式打开一个只读文件;
由于存在一个同名的只读文件或目录,而导致文件无法被创建;
由于目录表或磁盘己满,而导致文件无法被创建;

后两个原因可以排除,因为我的SD卡内没几个文件,也没有同名文件。估计就是我以只读的模式来写文件了。再次打开ff.h文件,查看写模式的十六进制。
在这里插入图片描述嗯,最后结合fattester.c中的函数,写出正确的测试指令。

在这里插入图片描述在串口调试助手中,写下读模式的打开指令和写模式的打开指令。
在这里插入图片描述
最后成功读取。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值