初中生
最后登录1970-1-1
在线时间 小时
注册时间2014-2-28
|
楼主 |
发表于 2014-4-3 15:43:04
|
显示全部楼层
flyleaf 发表于 2014-4-3 11:49
先把变量转换成字符串:
sprintf(buff,"%f",float_value)
非常感谢你的回答!
参考你的回答我已经能把float写入到SD卡内,并读出来。我使用f_lseek函数在之前的数据后追加了数据,但是在使用f_read读取的时候,它只读取TXT前一部分的数据,它只能读取textFileBuffer[]的数据,我应该怎么修改?谢谢你的回答
程序如下:
f_mount(0,&fs);//
// f_mkdir("sub");
// f_mkdir("sub/sub1");
/* function disk_initialize() has been called in f_open */
/* Create new file on the drive 0 */
res = f_open(&fnew, "0:newfile.txt", FA_CREATE_ALWAYS | FA_WRITE );
if(res==FR_OK)
{
res = f_write(&fnew, textFileBuffer, sizeof(textFileBuffer), &bw);
f_close(&fnew);
}
res=f_open(&fnew,"0:newfile.txt",FA_READ|FA_WRITE|FA_OPEN_ALWAYS);
if ( res == FR_OK )
{
res=f_lseek(&fnew,f_size(&fnew));
sprintf(buff,"%f",debug);
res = f_write(&fnew, buff, sizeof(buff), &bw);
f_close(&fnew);
}
res = f_open(&fnew, "0:newfile.txt", FA_OPEN_EXISTING | FA_READ);
res = f_read(&fnew, buffer, sizeof(buffer), &br);
printf("\r\n %s ", buffer);
/* Close open files */
f_close(&fnew);
/* Unregister work area prior to discard it */
f_mount(0, NULL); |
|