首先,第一次在优快云上面开通博客,这也算是我的第一篇博文吧,写的不好的地方还请大家不吝赐教,笔者现大二在校学生,之所以会选择在这里使用博客,是在一位嵌入式大虾的渲染下,和小伙伴一起分享学习的话,我相信可以学的更多。
废话不多说,进入主题。
首先,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 =