STM3利用FATFS向SD卡文件追加数据的三种方法

2023-11-19

1. f_sync(&SDFile)

该方法简单粗暴,适合一直连续向sd卡中写入数据。while之前就f_open(),循坏内重复:向缓存填充数据->写入数据->刷新写入...,整个过程并没有f_colse();

    retSD=f_open(&SDFile,filename,FA_CREATE_ALWAYS|FA_WRITE);//打开文件
    if(retSD != FR_OK)while(1);//判断是否成功
    /* USER CODE END 2 */

    /* Infinite loop */
    /* USER CODE BEGIN WHILE */
    while (1)
    {
        /* USER CODE END WHILE */

        /* USER CODE BEGIN 3 */


        sprintf(wendu,"temp:%d.%d\n",tempint,tempflo);
        retSD = f_write(&SDFile,wendu,strlen(wendu),&numRR);
        if(retSD != FR_OK)while(1);//判断

        tempint++;
        tempflo++;
        
        f_sync(&SDFile);//刷新,先将f_write的内容写入sd卡中,避免因为没有执行f_close而没有写入

        HAL_GPIO_TogglePin(led1_GPIO_Port,led1_Pin);
        HAL_Delay(500);


    }

2. FA_OPEN_APPEND

该方法稳当严谨,不需要一直向SD卡中写入,需要向SD卡中增加数据再调用。f_open()中使用FA_OPEN_APPEND

        retSD=f_open(&SDFile,"appEnd.txt",FA_OPEN_APPEND |FA_WRITE);
        if(retSD != FR_OK)while(1);
        sprintf(wendu,"temp:%d.%d\n",tempint,tempflo);
        retSD = f_write(&SDFile,wendu,strlen(wendu),&numRR);//写文件
        if(retSD != FR_OK)while(1);//判断

        tempint++;
        tempflo++;
		f_close(&SDFile);//关闭文件

3. f_lseek(&SDFile, f_size(&SDFile));

若使用该方法,f_open()中则不要使用FA_CREATE_ALWAYS(但前提是之前创建过这个文件夹),只要FA_WRITE即可!

 retSD=f_open(&SDFile,"lseek.txt", FA_WRITE);//打开文件
        if(retSD != FR_OK)while(1);
			
        sprintf(wendu,"temp:%d.%d\n",tempint,tempflo);
			
		f_lseek(&SDFile, f_size(&SDFile)); //方式2:打开后,根据文件字节大小移动读/写指针
			
        retSD = f_write(&SDFile,wendu,strlen(wendu),&numRR);//写文件strlen((const char *)writebuf)
        if(retSD != FR_OK)while(1);//判断

        tempint++;
        tempflo++;
				f_close(&SDFile);//关闭文件

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM3利用FATFS向SD卡文件追加数据的三种方法 的相关文章

  • 【模电】0017 开关电源的原理及分析

    开关电源一般简称为DCDC 比我们前两节分析的线性电源复杂一些 它与线性电源最大的不同在于其调整管的工作状态 开关电源中的调整管工作在开关状态 即只工作在饱和区和截止区 1 典型开关电源的原理 一个典型的降压型开关电源原理如下图 首先 我们
  • 前端代理配置

    dev env require dev env port process env PORT 8080 autoOpenBrowser true assetsSubDirectory static assetsPublicPath proxy
  • 海量影像图元合并可以考虑用openmp

    影像合并图元耗时较长 又是重复的功能 可以考虑并行openmp

随机推荐

  • Linux测试比较语句

    测试和比较语句用于if或脚本命令中 if condition then commands else if conditon then commands fi 或 condition command 如果condition为真则执行comma
  • [ 数据结构-C语言 ] 二叉树--初阶 大总结~~

    今天要和大家一起步入一个新的数据结构 二叉树 在学习了解二叉树之前我们先来了解什么是树 以下是本篇的主要内容及目录 目录 1 树的概念及其结构 1 1树的概念 1 2树的相关概念 重点 1 3树的表示 2 二叉树概念及结构 2 1概念 2
  • 优化算法 - BGD、MBGD、SGD - 梯度下降

    优化算法 BGD MBGD SGD 梯度下降 BGD SGD MBGD BGD BGD Batch Gradient Descent 批量梯度下降 损失函数 L X
  • 管道-阻塞与非阻塞

    非阻塞的管道和FIFO 管道和FIFO都可以设置非阻塞 它们两者都可以在打开之后通过fcntl函数设置O NONBLOCK标志来enable 一般而言 我们都是先使用F GETFL来获取当前文件状态标志 将它与O NONBLOCK按位或之后
  • javatServlet中的cookie设置

    cookie 服务器将一些信息存储在浏览器 本地 当用户再次打开网页时 会自动填充该信息 当浏览器再次发送请求时 会将存储的信息通过请求头的方式发送给服务器端 不需要用户每次都填充某些内容 cookie中理论上来讲 最大存储4KB内容 co
  • 数学界的扫地僧们(转)

    转载连接 http www newsmth net nForum article WorkLife 752660 前两天跟一个老同学聊近年来数学上的重大发现 结果作为科普人的我说着说着就发现 数学史原来就是一部八卦史 这个圈子奇葩辈出 怪事
  • C中violatile的用法

    1 violate影响编译器结果的输出 violate变量随时可能发生变化 与violate有关的运算不要进行编译优化 以免出错 例如 volatile int i 10 int j i int k i violate告诉编译器变量i是随时
  • 对接微信支付(二)统一下单API

    原创文章 对接微信支付 二 统一下单API 编程屋 大家可以先想一下 大家平时在PC端发起的支付都需要什么 是不是你选好商品之后 点击支付 然后PC端弹出来一个二维码 你扫码付款 付款完成之后就OK了 当然这只是针对我们用户来说的 对于我们
  • 什么是数字孪生技术?

    数字孪生是实体对象的虚拟模型 它跨越对象的生命周期 并使用从对象上的传感器发送的实时数据来模拟行为并监控操作 数字孪生可以复制许多现实世界中的物品 从工厂中的单台设备到完整的装置 例如风力涡轮机 甚至整个城市 数字孪生技术使您能够监督资产的
  • 毕业设计-基于机器视觉深度学习船只船舶检测

    目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研究生级别难度
  • Idea设置maven依赖自动导入

    maven自动导入 setting gt Build gt Build Tools gt Any changes
  • mmocr环境配置

    win10 显卡3070 创建名为mmocr的环境 conda create n mmocr python 3 7 y 激活mmocr conda activate mmocr 失败了 安装完事竟然是cpu版本 没找到原因 本人3070显卡
  • SpringBoot 图片上传(详解篇)

    前言 SpringBoot在服务器内上传文件 是临时文件 在重启时候会生成另外的目录 也就意味着原来上传的图片在重启后就访问不到了 1 图片上传 PostMapping upload public CommonResult insertDb
  • [人工智能-深度学习-77]:目标检测 - 常见项目、应用

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122307915 目录 前言 场景一
  • 【Golang入门】Golang第一天心得

    生活所迫 入门一下Go 很奇葩的第一点 接口 package main import fmt 定义一个接口 type Shape interface Area float64 定义一个矩形类型 type Rectangle struct W
  • 企业级体验:未来体验管理的价值与趋势

    我从事企业级体验相关领域的工作已十六载有余 曾经就职的企业既有阿里巴巴 腾讯这样的互联网 大厂 也有顺丰 龙湖这样的线下 传统 企业 在这些企业中 我所工作的场景横跨了软件 电商 互联网 物流 零售 地产 金融等诸多业务领域 为不同业务场景
  • freeImage图像旋转滤波

    原文 http www cnblogs com wangshide archive 2012 04 25 2470693 html 1 使用了 freeImage 图像库进行图像读取 保存 如何将图片转为矩阵 如何处理图片的颜色 rgb 透
  • pandas笔记(10)——数据导出

    导出excel 格式 to excel excel writer sheet name Sheet1 na rep float format None columns None header True index True index la
  • springcloud-eureka集群-整合hystrix框架整合feign

    继之前的项目继续扩展 整合hystrix和feign这两个框架 1 修改服务器调用者的application yml 增加如下代码 打开feign对hystrix的支持 feign hystrix enabled true 配置hystri
  • STM3利用FATFS向SD卡文件追加数据的三种方法

    1 f sync SDFile 该方法简单粗暴 适合一直连续向sd卡中写入数据 while之前就f open 循坏内重复 向缓存填充数据 gt 写入数据 gt 刷新写入 整个过程并没有f colse retSD f open SDFile