如果初始化成功了的话,接下来想干什么活直接调用 znfat.c里面的功能函数就得了,哪有那么麻烦。
UINT32 znFAT_ReadData(struct FileInfo *pFI,UINT32 offset,UINT32 len,UINT8 *app_Buffer); //数据读取
UINT32 znFAT_ReadDataX(struct FileInfo *pfi,UINT32 offset,UINT32 len);//文件数据读取+重定向 此函数会将读取的每个字节送到处理函数
UINT8 znFAT_Seek(struct FileInfo *pFI,UINT32 offset); //文件定位
UINT8 znFAT_Open_File(struct FileInfo *pFI,INT8 *filepath,UINT32 n,UINT8 is_file); //文件打开
UINT8 znFAT_Enter_Dir(INT8 *dirpath,UINT32 *pCluster,UINT32 *pos); //进入目录
UINT8 znFAT_Create_File(struct FileInfo *pfi,INT8 *pfn,struct DateTime *pdt); //创建文件
UINT8 znFAT_Create_Dir(INT8 *pdp,struct DateTime *pdt); //创建目录
UINT8 znFAT_Delete_Dir(INT8 *dirpath); //删除目录
UINT8 znFAT_Delete_File(INT8 *filepath); //删除文件
UINT8 znFAT_Make_FS(UINT32 tt_sec,UINT16 clu_sz); //格式化
UINT32 znFAT_WriteData(struct FileInfo *pfi,UINT32 len,UINT8 *pbuf); //写入数据
UINT8 znFAT_Dump_Data(struct FileInfo *pfi,UINT32 offset); //截断文件数据
UINT8 znFAT_Close_File(struct FileInfo *pfi); //关闭文件,如果程序中没有打开实时文件大小更新,则文件操作完后,尤其是写入和更改操作,必须调用此函数
UINT8 znFAT_Flush_FS(void); //刷新文件系统相关信息,如果程序中没有打开实时文件系统信息更新,则在程序中一定要调用此函数,否则将导致文件系统相关参数错误
如果你想进行数据读取操作,比如读取sd卡里某个文档的一句话,则:
znFAT_Open_File(&fileinfo,"/znmcu.txt",0,1);//先打开文件
打开成功后:
znFAT_ReadData(&fileinfo,10,20,buf); //从文件偏移量10位置开始读取20个字节
数据读取成功后保存在 buf 缓冲区,其实就是保存在数组里;然后该干嘛干嘛,你用串口、12864、还是TFT显示这句话都得。
ZNFAT32已经把很多功能函数都做好了的,使用者直接调用就是了,没必要去折腾什么扇区(如果你不是搞这方面的话)。
接口函数都在定义在 ZNFAT.h 里,函数体在 znfat.c文件