对STM32中FATFS文件系统常用API函数的理解

本文是作者对FATFS文件系统常用API函数的初步理解,适用于嵌入式系统,特别是STM32。文章通过示例介绍了如何使用f_open、f_write、f_lseek、f_truncate、f_sync、f_mkdir、f_unlink、f_rename、f_stat、f_chmod和f_utime等函数,帮助读者掌握FATFS文件系统的操作。
摘要由CSDN通过智能技术生成

首先,第一次在CSDN上面开通博客,这也算是我的第一篇博文吧,写的不好的地方还请大家不吝赐教微笑,笔者现大二在校学生,之所以会选择在这里使用博客,是在一位嵌入式大虾的渲染下,和小伙伴一起分享学习的话,我相信可以学的更多。偷笑

废话不多说,进入主题。

首先,FATFS 是一个完全免费开源的 FAT 文件系统模块,专门为小型的嵌入式系统而设计的,使用标准的C语言编写,具有很强的独立性,可以轻松的移植到8位,16位,及其我正在用的32位ARM系列的STM32上面。即FATFS是可裁剪的文件系统。这点,尤为重要。

FATFS模块的层次结构图如下,这里,参考了部分正点原子的资料,感谢原子大大偷笑


其中底层接口,包括存储媒介读/写接口(disk I/O)和供给文件创建修改时间的实时时钟,需要我们根据平台和存储介质编写移植代码。
而中间层FATFS模块,实现了FAT 文件读/写协议。FATFS模块提供的是ff.c和ff.h。除非有必要,使用者一般不用修改,使用时将头文件直接包含进去即可。
最顶层是应用层,使用者无需理会FATFS复杂的FAT 协议和内部结构,只需要调用FATFS模块提供给用户的一系列应用API接口函数。

那么,下面就来介绍下 我对FATFS文件系统的常用API接口函数的一些理解。(以下是我直接在WPS里面写好的,故直接cp过来了大笑,往理解)

/* FRESULT f_open函数mode全部打开方式说明

---------------------------------------------------------------------------------

FA_READ           | 读模式,( 读写模式可同时生效)              

FA_WRITE          | 写模式,( 读写模式可同时生效)

FA_OPEN_EXISTING  | 默认打开方式

FA_OPEN_ALWAYS   | 打开文件,如果文件不存在,则创建一个新文件;

  | 用此种方式,可以用 f_lseek 在文件后追加数据

                  |

FA_CREATE_NEW   | 新建文件,如果文件已存在,则新建失败

FA_CREATE_ALWAYS  | 新建文件,如果文件已存在,覆盖旧文件   

                      |

---------------------------------------------------------------------------------

*/

 

/*---------------------------------------------------------------------------------

/①以下测试 f_write 通过程序写入数据 即通过程序新建txt文档且有数据

  res=f_open (&fil,"0:/写入.txt", FA_CREATE_ALWAYS|FA_WRITE); //新建文件和写操作

f_write (&fil, "This is a new file, the data is just written in!", 48, &bww);//前提是以写文件的形式打开文件

f_close(&fil);//关闭文件,必须和 f_open 函数成对出现,同下

res=f_open (&fil,"0:/写入.txt", FA_READ);

    

  f_read (&fil, buf,48,&bww);

f_close(&fil);//不论打开还是新建文件啊,一定记得关闭

LCD_ShowString(10,210,280,24,24,(u8 *)buf);//

①以下测试通过程序写入数据 即通过程序新建txt文档且有数据

--------------------------------------------------------------------------------- */

/*---------------------------------------------------------------------------------

②以下测试FRESULT f_lseek()移动文件指针,此函数在对已打开的文件进行读或写时,可以移动当前指针位置 即可以加入或者减去某些不需要的数据

 

     res=f_open (&fil,"0:/写入.txt", FA_WRITE);

 res =

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值