1.7 Cubemx STM32F429_RTX FATFS 库函数讲解(三)

news2024/10/10 6:20:28

文章目录

  • 1、打开文件夹
  • 2、读取文件夹
  • 3、打开\新建一个文件
  • 5、读取文件

1、打开文件夹

FRESULT f_opendir ( 
 DIR* DirObject, /* Pointer to the blank directory object 
structure */ 
 const TCHAR* DirName /* Pointer to the directory name */ 
) 

函数说明:

  1. 此函数可以打开一个已存在的文件夹
  2. 参数说明:
    a) *DirObject : 指向一个空白的结构体,用来存储要打开的文件夹信息
    b) *DirName : 指向该文件夹名称的指针

2、读取文件夹

FRESULT f_readdir ( 
 DIR* DirObject, /* Pointer to the open directory object */ 
 FILINFO* FileInfo /* Pointer to the file information structure */ 
);

函数说明:

  1. 此函数按照顺序读取文件夹内文件
  2. 参数说明:
    a) *DirObject : 指向读取的文件夹的信息结构体的指针
    b) *FileInfo : 指向文件信息结构体,用来存储读取到的文件的信息
  3. 重复调用此函数可读取文件夹内所有文件
  4. 当所有文件读取结束,函数返回一个空字符串到 f_name[] 中
  5. 如果一个空指针赋给 *FileInfo ,将返回从第一个文件开始读取.
例程:这段程序先打开文件夹 folde/move ,然后查找其中的存档文件,并通过串口输出
读取的文件名
 if (f_opendir(&dirs, "folder/move") == FR_OK) //打开文件夹
 { 
 while (f_readdir(&dirs, &finfo) == FR_OK) //按照顺序读文件夹
 { 
 if(!finfo.fname[0]) break; //如果文件名为 0,结束
 { 
 if(finfo.fattrib == AM_ARC) //判断文件属性 
 Debug("文件名:%s\r\n",finfo.fname); 
 } 
 } 
 }

串口输出如下:
在这里插入图片描述
在 PC 上查看 SD 卡:
在这里插入图片描述
if(finfo.fattrib == AM_ARC),意思是只对存档文件进行处理;

3、打开\新建一个文件

FRESULT f_open ( 
 FIL* FileObject, /* Pointer to the blank file object structure 
*/ 
 const TCHAR* FileName, /* Pointer to the file neme */ 
 BYTE ModeFlags /* Mode flags */ 
);

函数说明:

  1. 此函数可以打开,或新建一个文件
  2. 参数说明
    a) *FileObject : 指向一个用来存储文件对象的空结构体的指针
    b) *FileName : 指向文件名的指针
    c) ModeFlags : 打 开 方 式 , 可 以 是 以 下 一 种 或 几 种 的 组 合 ( 默 认 方 式 是FA_OPEN_EXISTING)

在这里插入图片描述

5、读取文件

FRESULT f_read ( 
 FIL* FileObject, /* Pointer to the file object structure */ 
 void* Buffer, /* Pointer to the buffer to store read data */ 
 UINT ByteToRead, /* Number of bytes to read */ 
 UINT* ByteRead /* Pointer to the variable to return number of bytes 
read */ 
);

函数说明:
1. 这个函数可以读取文件的内容
2. 参数说明:
a) *FileObject : 指向文件对象结构体的指针
b) *Buffer : 指向存储读取到的数据的缓冲的指针
c) ByteToRead : 准备读取的字节数
d) *ByteRead :
i. 它的作用就是用来检测文件的末尾,就是下面例程中的这一句:
if (res || br < sizeof(buffer)) break;
ii. 每次 f_read 执行完后,ByteRead 值等于本次读取到的字节数,若ByteRead
<ByteToRead,即本次读取到的字节小于准备读取的字节,说明读指针已到达
文件末尾.
例程:此处参考酷学玩例程,以读取的方式打开文件,然后将文件内容通过串口输出。

 res = f_open(&fsrc, "news/news.txt", FA_READ); 
 if(!res) 
 { 
 Debug("open news/news.txt : %d\r\n",res); 
 br=1; 
 a=0; 
 Debug("文件内容:"); 
 for (;;) 
 { 
 for(a=0; a<512; a++) buffer[a]=0; 
 res = f_read(&fsrc, buffer, sizeof(buffer), &br); 
 Debug("%s\r\n",buffer); 
 if (res || br < sizeof(buffer)) break; // error or eof 
 } 
 } 
 f_close(&fsrc); //不论是打开,还是新建文件,一定记得关闭

运行后串口输出结果:
在这里插入图片描述
下面是在PC中查看:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/190778.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

React中如何使用Mobx

一、Mobx前端状态管理框架 基础概念&#xff1f; 1. 什么是Mobx Mobx是一个简单、可扩展的状态管理库 2. 什么是状态管理&#xff1f; 状态管理就是将分布在各个组件、各个模块中的状态的变化&#xff0c;按照一定的规则&#xff0c;进行统一的管理。 3. 为什么需要状态管…

NX二开ufun函数创建块/基准平面/凸台/垫块/腔体

本节主要讲述通过ufun函数直接创建块、基准平面、凸台、垫块、腔体&#xff0c;涉及ufun函数如下&#xff1a; 1、创建块 UF_MODL_create_block 2、创建基准平面 UF_MODL_create_fixed_dplane 3、创建凸台 UF_MODL_create_boss 4、创建垫块 UF_MODL_create_rect_pad5 5、创…

聊聊如何成为更好的架构师?

之前有小伙伴咨询架构方向需要学习什么&#xff0c;需要什么技术储备&#xff0c;今天就来深入聊聊这个话题。 就此探讨下必备技能、经验&#xff0c;以及储备相关知识所需的时间和精力。除此之外&#xff0c;我也回顾了自己走过的路、使用或尝试过的技术&#xff0c;以及我从…

开学季,送什么给小学生实用?学生最实用的护眼好物

伴随着“立春”&#xff0c;又到新的春季开学季&#xff0c;不管是家长还是孩子面对每个学期的循环&#xff0c;每一次都有新的故事和发现&#xff0c;很快就要开学了&#xff0c;给学生的小礼物准备好了吗&#xff0c;作为父母、长辈送给孩子最好的礼物&#xff0c;我认为莫过…

大数据舆情分析软件实时监控,TOOM大数据处理与舆情监控简介

舆情数据分析处理是指通过使用大数据技术、人工智能、自然语言处理等&#xff0c;从舆情数据中提取信息&#xff0c;进行模型建立、模式识别、情感分析等&#xff0c;从而了解舆论情况。舆情数据分析处理的目的是了解舆论趋势、话题热点、网民情绪等&#xff0c;从而便于企业、…

中国电子学会2022年03月份青少年软件编程Scratch图形化等级考试试卷四级真题(含答案)

分数&#xff1a;100 题数&#xff1a;24 一、单选题(共10题&#xff0c;共30分) 1. 由1,2,3,4,5,0这六个数字经过排列组合能够组成多少个六位数偶数&#xff1f;注意&#xff1a;每一位都不相同&#xff0c;最高位不能为0。&#xff08; &#xff09; A. 720 B. 360 C. …

动态规划Dynamic Programming的基础解法

本文是对Jeff Erickson经典算法入门书籍《Algorithms》中动态规划问题的阅读笔记&#xff0c;近期在刷一些编程题&#xff0c;对于如何凑出动态规划更新的范式&#xff0c;脑袋里一直是一团乱麻&#xff0c;特别看完了别人的题解&#xff0c;只是惊叹其脑洞&#xff0c;但一直搞…

分页数据渲染

SearchResult属性增加 增加属性 private List<Integer> pageNavs; 目的&#xff1a;产生分页效果&#xff0c;方便操作&#xff0c;navs记录了从1到总页数的暑假 不是第一页时显示上一页 <a class"page_a" th:attr"pn${result.pageNum - 1}" hre…

算法基础集训(第30天)------>DFS之经典【n皇后问题】

一&#xff1a;概念定义n−皇后问题是指将 n个皇后放在 nn的国际象棋棋盘上&#xff0c;使得皇后不能相互攻击到&#xff0c;即任意两个皇后都不能处于同一行、同一列或同一斜线上。二&#xff1a;题目描述n−皇后问题是指将 n个皇后放在 nn 的国际象棋棋盘上&#xff0c;使得皇…

【C++入门】函数重载

目  录1 函数重载概念2 C支持函数重载的原理 -- 名字修饰&#xff08;name Mangling&#xff09;1 函数重载概念 函数重载&#xff1a; 函数的一种特殊情况&#xff0c;C允许在同一作用域中声明几个功能类似的同名函数&#xff0c;这些同名函数的形参列表&#xff08;参数个数…

企企通入选「AI中国」机器之心“最具商业价值解决方案 TOP 30” 榜单

近日&#xff0c;由专业的人工智能信息服务平台机器之心&#xff0c;发起并评选的「AI 中国」机器之心2022 年度评选榜单正式公布&#xff0c;企企通凭借过去一年在采购供应链领域取得的成就&#xff0c;以及在技术、产品、服务能力方面具备的独特优势&#xff0c;从众多企业中…

Python连接Liunx中mysql数据库-三表查询【10个经典案例】

关于Python连接liunx中mysql数据库的方式在这一篇文章 Python连接Liunx中mysql数据库-保姆级教程 关于Python针对liunx中的mysql数据库进行增删改查操作的文章在这一篇可以看一下 Python连接Liunx中mysql数据库-增删改查 对于单表查询的学习可以看这一篇文章 Python对liunx中my…

使用.ibd文件恢复Mysql数据库数据

使用.ibd文件恢复Mysql数据库数据问题发现问题解决第一步&#xff1a;查找mysql数据目录第二步&#xff1a;创建表第三步&#xff1a;解除表空间第四步&#xff1a;复制原数据库.ibd文件第五步&#xff1a;导入表空间ERROR 1030 (HY000): Got error 194 “Tablespace is missin…

使用Navicat生成MySQL测试数据

使用Navicat生成MySQL测试数据 Navicat版本&#xff1a;16.1.3 场景&#xff1a;因为某些原因&#xff0c;本人负责项目的数据库需要从MySQL迁移到PostgreSQL&#xff0c;所以就想测试一下PostgreSQL数据库的分区表性能。测性能的话大概需要两千万的测试数据&#xff0c;从生…

蓝队--Linux基线安全检查

文章目录认证账号和口令安全创建用户用户安全基线授权文件系统安全审计日志安全日志存放的位置设备等级观察一条日志产生的过程网络安全网络协议与服务安全SSH的配置防火墙安全操作系统SELinux登陆安全kali忘记密码怎么办怎么物理加密进入BOIS界面选择Security选择set User Pas…

【前端】css样式视口、布局

一、 视口概念 视口&#xff08;viewport&#xff09;是用来约束网页中最顶级块元素的&#xff0c;即它决定了网页的大小&#xff0c;网页是先在视口上渲染&#xff0c;然后再通过视口放回到浏览器窗口上的&#xff0c;网页的渲染过程如下&#xff1a; pc端视口的大小和浏览器…

Python---类与对象

专栏&#xff1a;python 个人主页&#xff1a;HaiFan. 专栏简介&#xff1a;本专栏主要更新一些python的基础知识&#xff0c;也会实现一些小游戏和通讯录&#xff0c;学时管理系统之类的&#xff0c;有兴趣的朋友可以关注一下。 类与对象前言定义类创建对象前言 面向对象跟函…

河北如何推进农村生活污水处理?

自“十四五”以来&#xff0c;我国各地都针对地方农村人居环境的改善颁布相关方案&#xff0c;力图改善农村生活污水处理这一自本世纪初就始终困扰我国广大农村居民的难题。今天&#xff0c;小编就为大家介绍一下&#xff0c;湖北省针对农村污水处理所采取的最新措施。 河北地…

统计图表有哪几个种类及其特点

关于数据分析中常用统计图表的分类和各种图表的特点&#xff0c;这一张图就能概括&#xff01; 下面来展开说下&#xff0c;为了直观展示&#xff0c;给大家找了一份可视化统计图表的模板&#xff0c;可直接在线使用&#xff0c;需要的小伙伴自取哈。 点此领取模板>>htt…

端口映射和端口转发

文章目录端口转发定义端口映射的定义端口转发简介常见转发工具LCX1、目标机有公网lP2、端口映射3、目标机无公网IP端口转发和端口映射都是为了解决内网主机的端口无法在外部直接访问而衍生出来的技术&#xff0c;通过中间服务器进行中转&#xff0c;将内部的端口映射到公网IP上…