中级会员
 
- 积分
- 215
- 金钱
- 215
- 注册时间
- 2020-3-5
- 在线时间
- 36 小时
|
5金钱
根据上一个帖子我进行了修改
FIL MyFile; // 文件对象
u8 key=0;
u16 BufferSize = 0;
u8 FATFS_write(void) //文件创建和写入测试
{
u8 i = 0;
UINT MyFile_Num; // 数据长度
BYTE MyFile_WriteBuffer[1024];
BYTE MyFile_ReadBuffer[1024]; //要读出的数据
sprintf((char*)MyFile_WriteBuffer,"角度 x: %f,y: %f,z: %f地磁 x: %d,y: %d,z: %d\r\n",angle_x,angle_y,angle_z,Geomagnetism_x,Geomagnetism_y,Geomagnetism_z);
printf("-------------FatFs 文件创建和写入测试---------------\r\n");
if(!key)
{
MyFile_Res = f_open(&MyFile,"0:FatFs Test.txt",FA_CREATE_ALWAYS | FA_WRITE); //打开文件,若不存在则创建该文件
if(MyFile_Res == FR_OK)
{
printf("文件打开/创建成功,准备写入数据...\r\n");
MyFile_Res = f_write(&MyFile,MyFile_WriteBuffer,sizeof(MyFile_WriteBuffer),&MyFile_Num); //向文件写入数据
f_close(&MyFile); //关闭文件
if (MyFile_Res == FR_OK)
{
printf("写入成功,写入内容为:\r\n");
printf("%s\r\n",MyFile_WriteBuffer);
}
else
{
printf("文件写入失败,请检查SD卡或重新格式化!\r\n");
f_close(&MyFile); //关闭文件
return ERROR;
}
}
else
{
printf("无法打开/创建文件,请检查SD卡或重新格式化!\r\n");
f_close(&MyFile); //关闭文件
return ERROR;
}
key=1;
BufferSize = f_tell(&MyFile);
}
else
{
MyFile_Res = f_open(&MyFile,"0:FatFs Test.txt", FA_OPEN_ALWAYS | FA_WRITE); //打开文件,若不存在则创建该文件
f_lseek(&MyFile,BufferSize);
MyFile_Res = f_write(&MyFile,MyFile_WriteBuffer,sizeof(MyFile_WriteBuffer),&MyFile_Num); //向文件写入数据
f_close(&MyFile); //关闭文件
if (MyFile_Res == FR_OK)
{
printf("写入成功,写入内容为:\r\n");
printf("%s\r\n",MyFile_WriteBuffer);
}
else
{
printf("文件写入失败,请检查SD卡或重新格式化!\r\n");
f_close(&MyFile); //关闭文件
return ERROR;
}
}
BufferSize = f_tell(&MyFile);
printf("-------------FatFs 文件读取测试---------------\r\n");
return SUCCESS;
}

有数据但是数据之前有好多乱码
通过这个函数获得文件大小 f_tell(&MyFile)
|
|