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.

后来发现原因:

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

https://blog.csdn.net/beckwest/article/details/51435164?utm_source=blogxgwz4 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值