FATFS系统中如何换行?f_lseek函数怎么到不了末尾呢

2019-08-13 23:35发布

用RTC 做时间,        可以创建文件,但是创建的文件只有一行。每一次都是文件的第一行覆盖。求解。               

Time_10s=0; sprintf(FileName,"0://%d.%d.%d.txt",calendar.w_year,calendar.w_month,calendar.w_date);// 20170728.txt
f_open (ftemp,FileName,FA_CREATE_ALWAYS|FA_WRITE);         //0x02 FA_WRITE
f_close(ftemp);
                       
sprintf(Datestream,"%d:%d-->   temperature is %d, humidity  is %d; ",calendar.hour,calendar.min,temperature,humidity);
                       
f_open (ftemp,FileName,FA_WRITE);
f_lseek(ftemp,ftemp->fsize);
               
f_write(ftemp,Datestream,strlen(Datestream),&bw);
f_close(ftemp);


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
talenthn
1楼-- · 2019-08-14 04:50
FA_CREATE_ALWAYS换成FA_OPEN_ALWAYS,要不然会一直新建文件
1066570234
2楼-- · 2019-08-14 05:59
talenthn 发表于 2017-8-6 15:31
FA_CREATE_ALWAYS换成FA_OPEN_ALWAYS,要不然会一直新建文件

恩,在while(1)里,main
while(1)
{
如果时间到了1分钟,存储温湿度 数据,文件存在,就打开存,不存在,就建一个。
if(Time_10s>5)
{
Time_10s=0;
sprintf(FileName,"0://%d.%d.%d.txt",calendar.w_year,calendar.w_month,calendar.w_date);// 20170728.txt
f_open (ftemp,FileName,FA_CREATE_ALWAYS|FA_WRITE);         //0x02 FA_WRITE
f_close(ftemp);
DHT11_Read_Data(&temperature,&humidity);        //¶áè¡ÎÂêa¶èÖμ
sprintf(Datestream,"%d:%d-->   temperature is %d, humidity  is %d; ",calendar.hour,calendar.min,temperature,humidity);
                       
f_open (ftemp,FileName,FA_WRITE);
f_lseek(ftemp,ftemp->fsize);
       
f_write(ftemp,Datestream,strlen(Datestream),&bw);
f_close(ftemp);
}


}
1066570234
3楼-- · 2019-08-14 09:09
 精彩回答 2  元偷偷看……
talenthn
4楼-- · 2019-08-14 09:23
1066570234 发表于 2017-8-6 16:35
这里   f_open (ftemp,FileName,FA_open_ALWAYS|FA_WRITE);这样 组合就可以了吗?
之前确实那样是被覆盖 ...

是的,你可以看一下fatfs说明文档,是叫00index_e.html的网页

FA_CREATE_ALWAYS        Creates a new file. If the file is existing, it will be truncated and overwritten.
FA_OPEN_ALWAYS               Opens the file if it is existing. If not, a new file will be created.
1066570234
5楼-- · 2019-08-14 12:21
talenthn 发表于 2017-8-7 16:20
是的,你可以看一下fatfs说明文档,是叫00index_e.html的网页

FA_CREATE_ALWAYS        Creates a new file.  ...

多谢啦啊
xuande
6楼-- · 2019-08-14 15:07
talenthn 发表于 2017-8-7 16:20
是的,你可以看一下fatfs说明文档,是叫00index_e.html的网页

FA_CREATE_ALWAYS        Creates a new file.  ...


也帮到我了,感谢。

一周热门 更多>