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条回答
1066570234
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);
}


}

一周热门 更多>