FATFS保存CSV文件到SD卡无法追加数据解决

最近在STM32F429的平台上移植FATFS文件系统时发现,在创建CSV文件后,每次追加数据都会将原先的覆盖掉。源代码如下:

u32 result;

uint8_t wtext1[] = "This is STM32 working with 1,ok\r\n";

uint8_t wtext2[] = "This is STM32 working with 2,ok\r\n";

uint8_t wtext3[] = "This is STM32 working with 3,ok\r\n";

if (f_mount(&FatFs,"", 1) == FR_OK)

{

 if(f_open (&fil,"TempLog.csv", FA_CREATE_ALWAYS | FA_READ | FA_WRITE) == FR_OK)

  {

    result = f_size(&fil);

    res= f_lseek(&fil,result);

    res= f_write(&fil, wtext1, sizeof(wtext1), (void *)&br);

    res= f_write(&fil, wtext2, sizeof(wtext2), (void *)&br);

    res= f_write(&fil, wtext3, sizeof(wtext3), (void *)&br);

 }

  f_close(&fil);

}

f_mount(0, "",1);

 

以上的程序运行在一个死循环中,但是发现CSV文件中永远只有3行数据,无法追加,进过单步调试发现result的值一直为0.

后来发现原因:

FATFS保存CSV文件到SD卡无法追加数据解决_第1张图片

 

把上面代码中的FA_CREATE_ALWAYS换成FA_OPEN_ALWAYS就解决问题了。

 

你可能感兴趣的:(FATFS保存CSV文件到SD卡无法追加数据解决)