野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13036|回复: 9

FATFS 中如何连续创建文件

[复制链接]
发表于 2016-6-14 09:20:51 | 显示全部楼层 |阅读模式
     我希望在挂载FATFS后能够在SD卡中连续创建文件,例如TEST1.TXT,TEST2.TXT.....TEST100.TXT. 请问如何操作,难道在需要调用100次 f_open()? 是否可以用FOR循环进行设置,如果可以如何操作?
回复

使用道具 举报

发表于 2016-6-14 10:47:51 | 显示全部楼层
你可以按照你的方法试一试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-14 11:37:59 | 显示全部楼层
不行啊,原样写成了“TEST[i].txt”,就一个文件
回复 支持 反对

使用道具 举报

发表于 2016-6-14 11:46:54 | 显示全部楼层
llby_oo7 发表于 2016-6-14 11:37
不行啊,原样写成了“TEST.txt”,就一个文件

没搞过啊,只能靠你自己啦
回复 支持 反对

使用道具 举报

发表于 2016-6-14 12:04:42 | 显示全部楼层
你的文件名要改啊,每次要使用不同的文件名
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-14 13:09:29 | 显示全部楼层
关键是如何动态的改变文件名,否则我要存一百个文件,难道要重复调用100次?
回复 支持 反对

使用道具 举报

发表于 2016-6-14 13:36:05 | 显示全部楼层
llby_oo7 发表于 2016-6-14 13:09
关键是如何动态的改变文件名,否则我要存一百个文件,难道要重复调用100次?

使用sprintf函数格式化字符串,产生文件名,百度下sprintf怎么用吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-14 14:23:37 | 显示全部楼层
多谢提醒!!
回复

使用道具 举报

 楼主| 发表于 2016-6-14 16:05:35 | 显示全部楼层
还是有点问题,代码如下:
TCHAR filename[10]={0};
for(j=0;j<10;j++)
{
          sprintf(filename , "jpeg%03d.jpg", j);

        USART_printf(USART1,"\r\n filename= %s \r\n", filename);
        
         res_sd = f_open(&fnew, "0:filename",FA_CREATE_ALWAYS | FA_WRITE );

}

     结果是串口打印效果是:jpeg000.jpg, jpeg001.jpg....jpeg009.jpg. 这个说明filename已经动态改变了
     但是, SD卡里面只有 "filename" 这一个文件,我已经把Ff.c 里面所有 const TCHAR* path 中const删除了,但是filename还是被当作了常量对待。
     请教大侠,有没有办法解决啊。
      
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-14 16:33:22 | 显示全部楼层
我已经找到原因了,把双引号去掉,就成功了!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 09:09 , Processed in 0.031120 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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