Fatfs文件系统循环多次向文件写内容出现f_write返回值为1的情况

2019-07-14 16:36发布

各位,大家好,小弟最近在做文件系统存储相关的工作,就是用Cubemx生成文件系统和SDIO,那么我的问题来了
在向文件写内容的时候

result= f_write(&File_Element.fil,File_Element.Fatfs_Buf,sizeof(File_Element.Fatfs_Buf), &File_Element.bwee);        
printf("f_write1=%d ",result);


循环多次向文件写内容,那么就可能会出现f_write返回值为1的情况,而且是没有规律的
我看了这个错误的解释是:FR_DISK_ERR,                        /* (1) A hard error occurred in the low level disk I/O layer */
说是底层硬件错误,

有没有人做过这方面的工作,大神给点指点
在线等
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
7762642422d
1楼-- · 2019-07-14 22:32
中间加个小延时试试
maobs20
2楼-- · 2019-07-15 01:49
7762642422d 发表于 2018-10-25 06:24
中间加个小延时试试

加了,每次写了之后都加了HAL_Delay(30),还是不起作用
7762642422d
3楼-- · 2019-07-15 05:25
maobs20 发表于 2018-10-25 06:41
加了,每次写了之后都加了HAL_Delay(30),还是不起作用

单次的传输是不是太大?看看频率最多支持多少,从底往上都要看
maobs20
4楼-- · 2019-07-15 07:11
7762642422d 发表于 2018-10-25 06:48
单次的传输是不是太大?看看频率最多支持多少,从底往上都要看

情况是这样的  传输字节几百的话是没有问题的,现在传输的每次是4000多字节 就会出现这种错误的情况,你说的频率指的是哪个的频率
7762642422d
5楼-- · 2019-07-15 12:32
 精彩回答 2  元偷偷看……
maobs20
6楼-- · 2019-07-15 17:09
7762642422d 发表于 2018-10-25 07:13
SDIO有频率,CPU有主频,速度过快也不行啊,你最好折中速度,比如试试2000,再试试1000,或者3000等等。

是的,就是速度问题,但是现在又有问题了,就是连续写4个小时之后,可能write函数就会出现错误,这是啥原因

一周热门 更多>