stm32 文件系统数据读写源码解析
一 概念
fatfs文件系统在文件读写中不可或却。熟悉和深入理解是一个不可或缺的前提。
这里面需要先明确几个概念:文件open的属性,这个非常重要。可以并列使用。

二 源码解析
A 写入数据:
if((false == g_lora_state) && (Mybuffer.Data_Length( &My_ADS1299_buffer)>= ADS_DATA_SIZE))
{
Mybuffer.Get( &My_ADS1299_buffer, TF_Buffer_ADS1299, ADS_DATA_SIZE);
//memset(TF_Buffer_ADS1299,0x11,TF_Buffer_ADS1299_Size);
//dump8(TF_Buffer_ADS1299,10); FRESULT res = f_write( &ADS1299_file, TF_Buffer_ADS1299 , TF_Buffer_ADS1299_Size, &bw);
if(res == FR_OK)
{ ads_data_cnt++;
//f_sync(&ADS1299_file); if(ads_data_cnt%1 == 0)
{
mprintf("date 4.10 ads data wirte success cnt:%d \n\r",ads_data_cnt); } }
else
{
data_failed_cnt++;
mprintf("ads task write data failed:%d failed cnt:%d \n\r",res,data_failed_cnt); } }
B 读取的文件打开
g_lora_state = true;
f_close(&ADS1299_file);
res=f_open(&ADS1299_file, ADS1299_filename, FA_READ);
mprintf("file sd enter and open file state is:%d \n\r",res);
C 文件读取
FRESULT res = f_read( &ADS1299_file, TF_Buffer_ADS1299 , TF_Buffer_ADS1299_Size, &bw);
mprintf("file read state is:%d \n\r",res); if(bw < 1)
{
mprintf("file read over \n\r");
g_lora_state = false;
seq_num = 0; f_close(&ADS1299_file);
res=f_open(&ADS1299_file, ADS1299_filename, FA_OPEN_ALWAYS | FA_WRITE);
mprintf("file save and open file state is:%d \n\r",res);
}
else
{
dump8(TF_Buffer_ADS1299,20);
}
stm32 文件系统数据读写源码解析的更多相关文章
- Soul 网关 Nacos 数据同步源码解析
学习目标: 学习Soul 网关 Nacos 数据同步源码解析 学习内容: 环境配置 Soul 网关 Nacos 数据同步基本概念 源码分析 学习时间:2020年1月28号 早7点 学习产出: 环境配置 ...
- Eureka应用注册与集群数据同步源码解析
在之前的EurekaClient自动装配及启动流程解析一文中我们提到过,在构造DiscoveryClient类时,会把自身注册到服务端,本文就来分析一下这个注册流程 客户端发起注册 boolean r ...
- Eureka源码解析系列文章汇总
先看一张图 0 这个图是Eureka官方提供的架构图,整张图基本上把整个Eureka的核心功能给列出来了,当你要阅读Eureka的源码时可以参考着这个图和下方这些文章 EurekaServer Eur ...
- HDFS源码解析:教你用HDFS客户端写数据
摘要:终于开始了这个很感兴趣但是一直觉得困难重重的源码解析工作,也算是一个好的开端. 本文分享自华为云社区<hdfs源码解析之客户端写数据>,作者: dayu_dls. 在我们客户端写数据 ...
- Fresco源码解析 - DataSource怎样存储数据
Fresco源码解析 - DataSource怎样存储数据 datasource是一个独立的 package,与FB导入的guava包都在同一个工程内 - fbcore. datasource的类关系 ...
- laravel 读写分离源码解析
前言:上一篇我们说了<laravel 配置MySQL读写分离>,这次我们说下,laravel的底层代码是怎样实现读写分离的. 一.实现原理 说明: 1.根据 database.php ...
- Vue源码解析---数据的双向绑定
本文主要抽离Vue源码中数据双向绑定的核心代码,解析Vue是如何实现数据的双向绑定 核心思想是ES5的Object.defineProperty()和发布-订阅模式 整体结构 改造Vue实例中的dat ...
- jquery源码解析:jQuery数据缓存机制详解2
上一课主要讲了jQuery中的缓存机制Data构造方法的源码解析,这一课主要讲jQuery是如何利用Data对象实现有关缓存机制的静态方法和实例方法的.我们接下来,来看这几个静态方法和实例方法的源码解 ...
- jquery源码解析:jQuery数据缓存机制详解1
jQuery中有三种添加数据的方法,$().attr(),$().prop(),$().data().但是前面两种是用来在元素上添加属性值的,只适合少量的数据,比如:title,class,name等 ...
- jQuery数据缓存$.data 的使用以及源码解析
一.实现原理: 对于DOM元素,通过分配一个唯一的关联id把DOM元素和该DOM元素的数据缓存对象关联起来,关联id被附加到以jQuery.expando的值命名的属性上,数据存储在全局缓存对象jQu ...
随机推荐
- vue2-ace-editor代码编辑器使用
安装 npm安装 npm install --save-dev vue2-ace-editor 如果需要拷贝到内网,需要 npm安装后 将 vue2-ace-editor 和 brace( vue2- ...
- 关于行结束符(CR、LF)、回车、换行
CR(Carriage Return)表示回车 LF(Line Feed)表示换行 Dos和Windows采用回车+换行(CR+LF)表示下一行而UNIX/Linux采用换行符(LF)表示下一行苹果机 ...
- 虚拟机 VMware Workstation 16 PRO 的网络配置
原文地址: https://blog.csdn.net/weixin_41905135/article/details/123858658 (一)VMware编辑虚拟网络 默认情况下,VMware ...
- Linux-Shell 小数运算,四舍五入
在shell中做小数运算,可以借助bc 或者awk工具 一.使用bc做小数运算,scale指定小数点位数 1.加法运算(scale参数无效) #echo "5.999 + 5.001&quo ...
- NC24141 [USACO 2011 Dec G]Grass Planting
题目链接 题目 题目描述 Farmer John has N barren pastures (2 <= N <= 100,000) connected by N-1 bidirectio ...
- NC20811 蓝魔法师
题目链接 题目 题目描述 "你,你认错人了.我真的,真的不是食人魔."--蓝魔法师 给出一棵树,求有多少种删边方案,使得删后的图每个连通块大小小于等于k,两种方案不同当且仅当存在一 ...
- 【Unity3D】激光灯、碰撞特效
1 需求描述 本文将模拟激光灯(或碰撞)特效,详细需求如下: 从鼠标位置发射屏幕射线,检测是否与物体发生碰撞 当与物体发生碰撞时,在物体表面覆盖一层激光灯(或碰撞)特效 本文代码见→激光灯.碰 ...
- Vue+SpringBoot+ElementUI实战学生管理系统-4.后端API编写
1.章节介绍 前一篇介绍了项目的表结构设计,这一篇编写后端API,需要的朋友可以拿去自己定制.:) 2.获取源码 源码是捐赠方式获取,详细请QQ联系我 :)! 3.项目截图 登录页 列表操作 动态图 ...
- 2021-06-28 CSS变量设置颜色
说明 css变量只能以[–]开头. 距离当前dom元素层级最近的父元素作用域css变量的值更容易生效. css变量在css文件中只能以var()函数来使用. 代码 <!DOCTYPE html& ...
- vue实现导出word文档(含多张图片)
vue实现导出word文档(含多张图片) 转自: https://www.pudn.com/news/62e1e14e55398e076bea2d2f.html