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
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.

一周热门 更多>