关于FATFS文件系统的一些使用方法

第一次在CSDN上写这些东西,技术也不是很好,记录一下自己的学习过程,望各路大神见谅。

使用FATFS文件系统前需要阅读一些相关的文档,起码知道各个函数的功能。这里介绍创建文件的方式(自己尝试过的)。本人使用的是正点原子的库,调试时使用的是正点原子的USMART。

#define    FA_READ                       0x01
#define    FA_OPEN_EXISTING    0x00

#if !_FS_READONLY
#define    FA_WRITE                      0x02
#define    FA_CREATE_NEW         0x04
#define    FA_CREATE_ALWAYS   0x08
#define    FA_OPEN_ALWAYS       0x10
#define    FA__WRITTEN               0x20
#define    FA__DIRTY                     0x40

以上为正点原子库里面定义的宏,但是USMART,用串口 调试时无法用宏,只能使用后面的数字0x01

1.mf_mkdir();  创建新文件夹
         mf_mkdir("0:lzkfile");

在SD卡里面创建一个lzkfile文件夹

2.mf_open;打开/创建文件

        mf_open("0:lzkfile/2018.txt",0X10);

在原先创建的lzkfile文件夹里面再创建一个2018.txt文件。想往txt写数据还需要敲mf_open("0:lzkfile/2018.txt",0X02)

注意,使用USMART调试时不能使用mf_open("0:lzkfile/2018.txt",0X02|0X10),否则会识别提示参数错误。

3.mf_write();写数据

       mf_write("123456789",9);

在2018.txt文件里面写入123456789九个数据 ;

4.mf_lseek();寻址位移

       mf_lseek(9);

上面已经写入了九个数据,因此需要位移9个再从后面继续添加新的数据;再敲mf_write("987654321",9);

5.mf_close();关闭

    每次写完数据都需要关闭文件,不让之前写的内容就无法存进文件里面;需要特别注意;

6.mf_read();读数据

   执行读操作前要先定位到之前存文件的位置;敲mf_open("0:lzkfile/2018.txt",0X1);

   再敲mf_read(0x18)-——因为之前存了18个数字,当然也可以使用高级点的方法,读取到文件的数据的结尾,完成自动续字功能。

下面是串口调试界面的内容

/*******************************/

mf_mkdir("0:lzkfile")=0X0;

mf_open("0:lzkfile/2018.txt",0X10)=0X0;

mf_open("0:lzkfile/2018.txt",0X2)=0X0;

mf_write("123456789",0X9)
Begin Write file...
Write data len:9
Writed data len:9
Write data over.
=0X0;

mf_lseek(0X9)=0X0;

mf_write("987654321",0X9)
Begin Write file...
Write data len:9
Writed data len:9
Write data over.
=0X0;

mf_close()=0X0;

mf_open("0:lzkfile/2018.txt",0X1)=0X0;

mf_read(0X12)
Read file data is:
123456789987654321
Readed data len:18
Read data over
=0X0;

mf_close()=0X0;

/*****************************************/

以上是我搞自学所用到的几个函数。FATFS里面的其他函数暂时还没使用,后面会继续学习操作。

 

你可能感兴趣的:(关于FATFS文件系统的一些使用方法)