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 ...
随机推荐
- org.apache.hadoop.security.AccessControlException: Queue root.online already has 0 applications, cannot accept submission of application
org.apache.hadoop.security.AccessControlException: Queue root.online already has 0 applications, can ...
- [zookeeper] 集群搭建及启动后查询服务器状态异常解决
一.集群搭建 1.每台服务器上部署zookeeper 1.将zookeeper压缩包解压到指定位置,在zookeeper解压后目录下创建数据目录zkData 2.在zkData下创建myid文件,内容 ...
- ABC 310
E \(dp[i][j]\) 表示前 \(i\) 个里有多少个后缀答案为 \(j\). \(if (c[i] == '0') \{\) \(dp[i][0] = 1;\) \(dp[i][1] = d ...
- 《SagDRE: Sequence-Aware Graph-Based Document-Level Relation Extraction with Adaptive Margin Loss》论文阅读笔记
代码 原文地址 关键参考文献: Document-Level Relation Extraction with Adaptive Thresholding and Localized Context ...
- 普及模拟2 +【LGR-155-Div.3】洛谷基础赛 #3 &「NnOI」Round 2
普及模拟2 \(T1\) 地址 \(0pts\) 简化题意:判断一个 \(IP\) 地址是否合法(数据保证字符串中存在且仅存在4个被字符分开的整数),若不合法则将其改正. 部分分: \(0pts\) ...
- angularjs国际化多语言,angular-translate教程详解,$translate.instant()为什么不生效
壹 ❀ 引 最近项目要求支持国际化多语言,由于项目用的还是angularjs,那么首当其冲的选择了angularjs封装的I18N插件angular-translate,本文主要会从三个方向展开讨论, ...
- google recaptcha 谷歌人机身份验证超详细使用教程,前端/后端集成说明
壹 ❀ 引 在日常页面交互中,验证码使用是极为频繁的,登录注册验证,非机器人操作验证等等,它遍布于每一个网站.说到验证码实现,Goole Recaptcha是一个非常不错的选择,那么希望通过本文的使用 ...
- 二进制文件转Hex和Wav文件转Hex的Java代码
二进制文件转Hex 对于需要将二进制数据写入固件的场景(例如mp3文件), 需要将二进制文件表示为byte数组 import java.io.File; import java.io.FileInpu ...
- python中两个不同shape的数组间运算规则
1 前言 声明:本博客讨论的数组间运算是指四则运算,如:a+b.a-b.a*b.a/b,不包括 a.dot(b) 等运算,由于 numpy 和 tensorflow 中都遵循相同的规则,本博客以 nu ...
- centos7搭建postgresql主从(主备)架构
本篇介绍如何在centos7系统搭建一个postgresql主备集群实现最近的HA(高可用)架构.后续更高级的HA模式都是基于这个最基本的主备搭建. 节点规划 ip 主机名 用途 192.168.18 ...