OpenEdv-开源电子网

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

STM32+FatFs文件系统

[复制链接]

28

主题

85

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
217
金钱
217
注册时间
2012-11-28
在线时间
0 小时
发表于 2013-8-29 10:20:29 | 显示全部楼层 |阅读模式
                 对FatFs文件系统没有仔细研究,只是移植到板子上并可以使用了。可以根据输入的名字在SD卡种创建文件夹,我现在想用时间来命名txt文件,可是怎么都建立不了,请教大神fatfs那块需要配置嘛?
                 h_Time = Time_GetCalendarTime();
Time_GetTimeString(&h_Time,_HMSstr,Show_HMS);
Time_GetTimeString(&h_Time,_YMDstr,Show_YMD);
printf("%s\r\n",_HMSstr);
/* 创建文件夹 */
f_mkdir(filename);    
/* 在创建的文件夹中创建TXT文件 */
strcat(txtname,filename);
strcat(txtname,"/");
strcat(txtname,_HMSstr); //——HMSstr是存放时间的字符串  
strcat(txtname,".TXT");
f_open(&file,txtname,FA_CREATE_NEW | FA_WRITE ); //创建txt文件
f_write(&file, RS_Buffer, sizeof(RS_Buffer), &bw1);
        f_close(&file);

求大神指点???

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

93

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2012-11-16
在线时间
6 小时
发表于 2013-8-29 14:43:43 | 显示全部楼层
回复【楼主位】总在怀远:
---------------------------------
//创建文件夹路径和文件路径
u8 Create_files(char *dir_path,char *file_path)
{
 u32 Date,Time;
 char string0[25]={"0:/"}; //根目录
 char string1[15]={" "};     //日期目录
 char string2[3]={"/"};
 char string3[15]={" "}; //时间
 char string4[5]={".txt"};

 Date=timer.w_year*10000+timer.w_month*100+timer.w_date;  //获取日期
 convert(string1,Date);          //日期转换为字符串
 Time=timer.hour*10000+timer.min*100+timer.sec;       //获取时间
 convert(string3,Time);          //时间转换为字符串
 
 strcat(string0,string1);         //合成文件夹路径
 strcpy(dir_path,string0);

 strcat(string0,string2);                //合成文件路径
 strcat(string3,string4);
 strcat(string0,string3);
 strcpy(file_path,string0);
        
 res = f_mkdir((TCHAR *)dir_path);           //创建目录 
 LCD_ShowString(17,50,"Create new dir !");
 if(res==FR_EXIST){                  //如果目录存在,根据时间创建文件
  res = f_open(&fsrc,(TCHAR *)file_path, FA_OPEN_ALWAYS);  //文件不存在则创建新文件
  LCD_ShowString(17,50,"Create new file !");
  f_close(&fsrc);               //关闭文件          
 }
 return 0; 
}


在这个贴子里应该可以看到  http://www.openedv.com/posts/list/1577.htm   虽然我还没用
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-29 15:07:36 | 显示全部楼层
问题分析:
1,不用时间命名,直接输入固定的名字,生成.txt文件成功了么?如果没有,先搞定这个。
2,在strcat(txtname,".TXT");之后,加一句打印:txtname字符串的语句,输出到串口,看看名字是否与预期的一致?如果不一致,解决这个问题。
1,2都搞定了以后,就应该可以成功创建.txt文件了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

28

主题

85

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
217
金钱
217
注册时间
2012-11-28
在线时间
0 小时
 楼主| 发表于 2013-8-29 18:42:32 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
谢原子哥,解决了。我的时分秒格式是XX:XX:XX,把:改了就可以了。
回复 支持 反对

使用道具 举报

14

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2013-7-24
在线时间
0 小时
发表于 2013-9-28 20:04:02 | 显示全部楼层
回复【2楼】a2696026:
---------------------------------
 我现在想要获取时间,
Date=timer.w_year*10000+timer.w_month*100+timer.w_date;  //获取日期 

这里的timer.w_year   timer.w_month    timer.w_date从何而来 谢谢
回复 支持 反对

使用道具 举报

10

主题

93

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2012-11-16
在线时间
6 小时
发表于 2013-10-9 19:57:16 | 显示全部楼层
回复【5楼】stm32新0912030134:

回复【2楼】a2696026:
---------------------------------
 我现在想要获取时间,
Date=timer.w_year*10000+timer.w_month*100+timer.w_date;  //获取日期 
这里的timer.w_year   timer.w_month    timer.w_date从何而来 谢谢

---------------------------------
RTC  时间,整个工程包含RTC
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-12 11:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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