打印
[技术问题解答]

单片机往SD卡读写文件的容量问题

[复制链接]
1568|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hello_zkp|  楼主 | 2015-12-16 16:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
大苏牙| | 2015-12-16 19:47 | 只看该作者
fatfs支持fat12,fat16和fat32吧,文件大小和文件系统有关系吧

使用特权

评论回复
板凳
hello_zkp|  楼主 | 2015-12-16 21:42 | 只看该作者
大苏牙 发表于 2015-12-16 19:47
fatfs支持fat12,fat16和fat32吧,文件大小和文件系统有关系吧

那用fopen创建的文件的容量不能更改么?只能由fat16或fat32决定吗?

使用特权

评论回复
地板
FSL_FAE_ConstYu| | 2015-12-17 10:18 | 只看该作者
FATFS不会指定文件的大小,具体写入文件的大小取决于你的写入长度。f_write会自动调用disk_write的memory写的函数,ff.c会自动会根据写入长度来决定写入的sector的个数,这个才是真正的长度,不需要设置。简单来说,你写入的长度是1M,那aux——string是1M的话,不用设置,他会自动写那么长的数据。你可以看看FATFS的源码,看看其执行过程。
        /* Write the constructed string to the new line in text file */
        fr = f_write(&fil, aux_string, strlen(aux_string), &bytes_written);

    case SD:
        //return sdcard_disk_write(pdrv, buff, sector, count);
            memory_write_blocks (DSPI_MASTER_INSTANCE, sector, count, buff);
            return 0;

使用特权

评论回复
5
hello_zkp|  楼主 | 2015-12-17 15:21 | 只看该作者
FSL_FAE_ConstYu 发表于 2015-12-17 10:18
FATFS不会指定文件的大小,具体写入文件的大小取决于你的写入长度。f_write会自动调用disk_write的memory写 ...

按照你的思路试了一下,确实是这样的,非常感谢!:handshake

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

29

帖子

2

粉丝