搜索
bottom↓
回复: 21

关于FATFS的f_write一次最大能写入多少字节的问题

[复制链接]

出0入0汤圆

发表于 2010-4-2 08:45:01 | 显示全部楼层 |阅读模式
我已经把FATFS移植到我的STM32上,经过一些简单的文件读写测试,感觉还挺好的,就是测试f_write的时候一次最多只能写入1023个字节,
f_write(&fsrc, buffer_0, 1023, &br);如果超过1023个就会只写入前512个字节。中间的数据会写不进去,请路过的朋友给点建议,要是还没玩FATFS的我这里上传一个能用的给大家学习和参考呵呵
点击此处下载 ourdev_543046.rar(文件大小:14.77M) (原文件名:FatFs_R0.07e_STM32_v1.0.rar)

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2010-4-2 08:58:33 | 显示全部楼层
你的buffer_0的数组你开了多大啊?

肯定可以超过512的,至少一次能写64Kbyte

出0入0汤圆

 楼主| 发表于 2010-4-2 22:20:46 | 显示全部楼层
请问楼上的,你有没有试过超过1024个字节写入的,我的buffer_0开的是2000,我用的FATFS0.07E的

出0入0汤圆

发表于 2010-4-2 22:29:35 | 显示全部楼层
我有试过fatfs0.06的一次写4K到SD卡,文件大小几十MB,用rar来校验,完全正确

记忆比较深刻是因为每个块越大,写SD卡的速度越快

4K的块比512的块要快

出0入22汤圆

发表于 2010-4-4 19:02:11 | 显示全部楼层
我曾经测试过这个,当时是一次写一个快是对快的,当时我的快是512BYTE  后来改成1024 反而慢了。最后调到了我的103ZE的极限 速度变化不是很大  。

出0入0汤圆

发表于 2010-4-4 22:47:32 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-5 11:22:07 | 显示全部楼层
这个应该和卡有关系,小容量卡格式化后一个扇区的block比较小,有的甚至是1 也就是只有512BYTE,如果 8个block就是8*512=4096

buffer开到4096应该是最大值,再大也无用

具体看卡0x0d位置的值,fatfs的结构中有这个值,跟踪看一下是多少

出0入0汤圆

发表于 2010-5-11 15:30:16 | 显示全部楼层
我的写的也不正常

出0入0汤圆

发表于 2010-5-11 16:52:21 | 显示全部楼层
楼主解决了没,好了,说声哈

出0入0汤圆

发表于 2010-9-27 18:05:31 | 显示全部楼层
我最多才512。。很郁闷呢。。

超过512全都不成功程序都停住了,能问下。。你们两位是怎么实现的多字节的呢??谢谢了。

出0入0汤圆

发表于 2010-10-12 22:49:21 | 显示全部楼层
一种原因是和RAM有关系,如果你STM32的RAM只开了1K,除去各种变量,数组最大只能开1K,你开个大于1024字节的缓冲,肯定要出错了
另外还有&bw,它的值可以用来判断数据是否写完
                          do
                          {
                                   res = f_write(&fsrc, buffer, 1024 ,&bw);
                                  if(res)
                                   {
                                            Debug("write error : %d\r\n",res);
                                            break;
                                   }       

                          }
                          while (bw < 1024);  // 判断是否写完,这里的bw值也要作相应修改才行

出0入0汤圆

发表于 2010-10-13 03:51:23 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-14 10:23:23 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-14 19:02:12 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-16 19:30:20 | 显示全部楼层
mark

出0入137汤圆

发表于 2011-9-8 16:04:09 | 显示全部楼层
mark

出0入0汤圆

发表于 2013-2-4 06:13:51 | 显示全部楼层
mark        

出0入0汤圆

发表于 2013-8-5 00:12:05 | 显示全部楼层
楼主问题解决了吗?我最近做fatfs文件系统也发现这个问题,写1024个字节就出错,我用的是最新版本的。有别的朋友知道的话还请多多指教。

出0入0汤圆

发表于 2014-9-23 12:59:35 | 显示全部楼层
l学习一下

出0入0汤圆

发表于 2022-5-23 11:34:32 | 显示全部楼层
mark,学习一下学习一下。

出0入4汤圆

发表于 2022-5-24 17:55:17 | 显示全部楼层
受RAM限制,RAM有5M,可连续写5M。 到SDIO层。还是512字节的写。 我记得SD就是512字节为单位写。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 06:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表