欢迎来到泰骏兴电子,大家有问题可以直接联系管理员QQ:233619809单片机 QQ群:59194556 各位游客也可以注册玩玩,享受更多权益。温馨提示:本网站仅提供平台学习以及渠道,一切后果自行承担,还望广大用户提高自我意识,请不要轻易相信他人,请不要轻易相信他人,请不要轻易相信他人。为了更好的管理论坛工作,所以现在使用邮箱注册,如果以前的邮箱不能修改的,请联系管理员代为修改

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 284|回复: 1

STM32使用FATFS存储CSV格式数据

[复制链接]
发表于 2022-12-22 15:23:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
当我们移植好FATFS的时候,想要保存一下数据,CSV格式就是简单的表格数据


CSV数据是以(逗号作为换列的)
CSV或者txt都可以使用(\r\n)来进行换行


void SaveData()
{
            FIL file;
            u8 state;
            uint32_t fil_size;
            char data[80];
            state=f_open(&file,FileName,FA_OPEN_EXISTING|FA_WRITE);//打开文件,如果么没有则失败//FileName这个是文件的路径,可以通过宏直接指定一个,如:0:/data.csv     如0:/data.txt
            if(state!=0)//这里这样写就是为了照顾序号
    {
            sys_parm[rec_data_add]=0;//重新开始序号
            state=f_open(&file,FileName,FA_OPEN_ALWAYS|FA_WRITE);//刚刚直接打开没有打开,那么就创建一个并写入
    }
            if(state==0)
    {
            if(sys_parm[rec_data_add]%10==0)//添加表头
        {
            sprintf(data,"No.,Date,Time,\r\n");//格式化这些字符串,这个是每一项的内容
            fil_size = f_size(&file);
            state = f_lseek(&file,fil_size);
            state = f_write(&file,data,strlen((char *)data),&bw);//写入数据
        }
            sprintf(data,"%06d,%02d/%02d/%04d,%02d:%02d:%02d,\r\n",sys_parm[rec_data_add],calendar.w_date,calendar.w_month,calendar.w_year,calendar.hour,calendar.min,calendar.sec);//格式化存储的数据串
            fil_size = f_size(&file);
            state = f_lseek(&file,fil_size);
            state = f_write(&file,data,strlen((char *)data),&bw);//写入数据
            if(state==0){sys_parm[rec_data_add]++;write_sys();}//将写入次数进行加1并进行存储
            f_close(&file);//关闭文件
    }
}

这个保存下来的数据



点评

非常OK  发表于 2022-12-30 11:09
高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|泰骏兴电子科技有限公司 ( 粤ICP备2023060260号-1 ) 单片机爱好者

GMT+8, 2026-5-27 02:30

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表