OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5289|回复: 4

fatfs随按键创建新文件,求助

[复制链接]

17

主题

81

帖子

0

精华

高级会员

Rank: 4

积分
591
金钱
591
注册时间
2013-11-13
在线时间
61 小时
发表于 2014-5-12 21:49:12 | 显示全部楼层 |阅读模式
5金钱
按键扫描,当有KEY-UP按下时,就会新建一个文件夹,不如新建Acc1.xls;而再按一次就会另新建一个文件,比如Acc2.xls;
switch(t)
{  
case KEY_UP:
                    f_res = f_open(filedst, "0:/Acc1.xls", FA_OPEN_NEW_COVER);   //新建文件,如果存在则覆盖
                    f_res = f_lseek(filedst,filedst->fsize );                   //指针移动到文件末尾以附加数据                 
break;
.....
}

不知能不能实现,因为"0:/Acc1.xls"是一个整体,里面没有变量,不可以每次+1;如果写成"0:/Acc.xls",他也就会把Acc当成一个整体,并不会随i 的变化而变化!不知还有没有其他的方式?
让文件名随按键每按一次发生变化



case KEY_UP: 
                    j=j+1; 
                    sprintf((char*) Dat_buffer,"%s","0:/j.xls"); 
                    f_res = f_open(filedst, Dat_buffer, FA_OPEN_NEW_COVER); //新建文件,如果存在则覆盖 
                    f_res = f_lseek(filedst,filedst->fsize );                   //指针移动到文件末尾以附加数据 
                    LED1=0;                                                     //新建文件成功,LED1亮! 
break; 

这样不行呀!



case KEY_UP: 
                    j=j+1; 
                    sprintf(s,"0:/file%d.xls",j); 
                    f_res = f_open(filedst,s, FA_OPEN_NEW_COVER); //新建文件,如果存在则覆盖 
                    f_res = f_lseek(filedst,filedst->fsize );                   //指针移动到文件末尾以附加数据 
                    LED1=0;                                                     //新建文件成功,LED1亮! 
break; 
这样也不行!




这样写可以,不过还是改文件名 

char *s; 
s="0:/j.xls"; 
f_res = f_open(filedst,s, FA_OPEN_NEW_COVER);

可是若用sprintf还是不行1







最佳答案

查看完整内容[请看2#楼]

回复【2楼】正点原子: --------------------------------- u8 Dat_buffer[13];  case KEY_UP:                      j=j+1;                      sprintf((char*)Dat_buffer,"0:/data%d ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

81

帖子

0

精华

高级会员

Rank: 4

积分
591
金钱
591
注册时间
2013-11-13
在线时间
61 小时
 楼主| 发表于 2014-5-12 21:49:13 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
u8 Dat_buffer[13]; 
case KEY_UP: 
                    j=j+1; 
                    sprintf((char*)Dat_buffer,"0:/data%d.xls",j); 
                    f_res = f_open(filedst,Dat_buffer, FA_OPEN_NEW_COVER); //新建文件,如果存在则覆盖 
                    f_res = f_lseek(filedst,filedst->fsize );                   //指针移动到文件末尾以附加数据 
                    LED1=0;                                                     //新建文件成功,LED1亮! 
break; 

问题解决!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-13 00:03:44 | 显示全部楼层
不行要学会分析问题...
为什么不行,你想过没有?
问题出在哪里,你有判断思路没有?

学会学习的方法,远比你得到一个简单的答案来的重要的多。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

20

主题

122

帖子

0

精华

高级会员

Rank: 4

积分
639
金钱
639
注册时间
2014-6-20
在线时间
169 小时
发表于 2014-7-2 14:16:19 | 显示全部楼层
收藏,学习了
回复

使用道具 举报

4

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2013-10-17
在线时间
9 小时
发表于 2014-7-16 16:58:21 | 显示全部楼层
mark!!
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-5 07:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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