最近在做一个门紧锁,需要记录指纹的ID,IC卡卡号以及用户编号,我选择将信息存储到SD卡内,完成这个功能就需要用的FATFS文件管理。在ff.c中函数较多,且都为英文,在这里做一下中文名的记录,以及我所用到的函数的入口参数的介绍。
FATFS文件管理函数
函数功能英文及中文预览
中文解释如下
:
f_open - Open or Create a File (打开或者创建文件)
f_close -Close File (关闭一个文件)
f_read - Read File (从文件中读取数据)
f_write -Write File (向文件中写入数据)
f_forward - Forward data to the stream directly (available on only tiny cfg)(将文件数据直接送入数据流中)
f_lseek - Seek File R/W Pointer (移动文件读指针(RP),扩展文件大小)
f_truncate - Truncate File(缩减文件大小)
f_sync - Synchronize the File (清空缓存数据,实现数据同步)
f_opendir - Create a Directory Object (打开一个目录)
f_closedir - Close Directory (关闭目录)
f_readdir - Read Directory Entries in Sequence (列举目录中的条目(包括文件和子目录))
f_findfirst - Find first file (查找第一个文件)
f_findnext - Find next file(查找下一文件)
f_mkdir - Create a Directory (创建文件)
f_unlink - Delete a File or Directory (删除文件或者目录)
f_rename - Rename File/Directory (重命名或者移动一个文件或目录)
f_stat - Get File Status (获取文件属性)
f_chmod - Change Attribute (更改属性)
f_utime -Change Timestamp (更改时间戳)
f_chdir - (改变当前所在目录)
f_chdrive - Change Current Directory or Current Drive, Get Current Directory(改变当前所在驱动器)
f_getcwd - Get current directory
f_getfree - Get Number of Free Clusters(获取可用簇)
f_getlabel - Get volume label
f_setlabel - Set volume label
f_mount - Mount/Unmount a Logical Drive (注册和取消工作区)
f_mkfs - Create a file system on the volume(格式化磁盘)
f_fdisk - Create partition table on the physical drive
f_putc - Put a char to the file(写一个字符)
f_puts - Put a string to the file (写字符串)
f_printf - Put a formatted string to the file(写入一个格式化字符串)
f_gets -Get a string from the file (读字符串)
函数在ff.h中的定义
FRESULT f_open (FIL* fp, const TCHAR* path, BYTE mode); /* Open or create a file */
FRESULT f_close (FIL* fp); /* Close an open file object */
FRESULT f_read (FIL* fp, void* buff, UINT btr, UINT* br); /* Read data from a file */
FRESULT f_write (FIL* fp, const void* buff, UINT btw, UINT* bw); /* Write data to a file */
FRESULT f_forward (FIL* fp, UINT(*func)(const BYTE*,UINT), UINT btf, UINT* bf); /* Forward data to the stream */
FRESULT f_lseek (FIL* fp, DWORD ofs); /* Move file pointer of a file object */
FRESULT f_truncate (FIL* fp); /* Truncate file */
FRESULT f_sync (FIL* fp); /* Flush cached data of a writing file */
FRESULT f_opendir (DIR* dp, const TCHAR* path); /* Open a directory */
FRESULT f_closedir (DIR* dp); /* Close an open directory */
FRESULT f_readdir (DIR* dp, FILINFO* fno); /* Read a directory item */
FRESULT f_findfirst (DIR* dp, FILINFO* fno, const TCHAR* path, const TCHAR* pattern); /* Find first file */
FRESULT f_findnext (DIR* dp, FILINFO* fno); /* Find next file */
FRESULT f_mkdir (const TCHAR* path); /* Create a sub directory */
FRESULT f_unlink (const TCHAR* path); /* Delete an existing file or directory */
FRESULT f_rename (const TCHAR* path_old, const TCHAR* path_new); /* Rename/Move a file or directory */
FRESULT f_stat (const TCHAR* path, FILINFO* fno); /* Get file status */
FRESULT f_chmod (const TCHAR* path, BYTE attr, BYTE mask); /* Change attribute of the file/dir */
FRESULT f_utime (const TCHAR* path, const FILINFO* fno); /* Change times-tamp of the file/dir */
FRESULT f_chdir (const TCHAR* path); /* Change current directory */
FRESULT f_chdrive (const TCHAR* path); /* Change current drive */
FRESULT f_getcwd (TCHAR* buff, UINT len); /* Get current directory */
FRESULT f_getfree (const TCHAR* path, DWORD* nclst, FATFS** fatfs); /* Get number of free clusters on the drive */
FRESULT f_getlabel (const TCHAR* path, TCHAR* label, DWORD* vsn); /* Get volume label */
FRESULT f_setlabel (const TCHAR* label); /* Set volume label */
FRESULT f_mount (FATFS* fs, const TCHAR* path, BYTE opt); /* Mount/Unmount a logical drive */
FRESULT f_mkfs (const TCHAR* path, BYTE sfd, UINT au); /* Create a file system on the volume */
FRESULT f_fdisk (BYTE pdrv, const DWORD szt[], void* work); /* Divide a physical drive into some partitions */
int f_putc (TCHAR c, FIL* fp); /* Put a character to the file */
int f_puts (const TCHAR* str, FIL* cp); /* Put a string to the file */
int f_printf (FIL* fp, const TCHAR* str, ...); /* Put a formatted string to the file */
TCHAR* f_gets (TCHAR* buff, int len, FIL* fp); /* Get a string from the file */
函数及入口参数
f_open (
FIL* fp, /* Pointer to the blank file object */
const TCHAR* path, /* Pointer to the file name */
BYTE mode /* Access mode and file open mode flags */
)
f_close (
FIL *fp /* Pointer to the file object to be closed */
)
f_read (
FIL* fp, /* Pointer to the file object */
void* buff, /* Pointer to data buffer */
UINT btr, /* Number of bytes to read */
UINT* br /* Pointer to number of bytes read */
)
f_write (
FIL* fp, /* Pointer to the file object */
const void *buff, /* Pointer to the data to be written */
UINT btw, /* Number of bytes to write */
UINT* bw /* Pointer to number of bytes written */
)
f_forward (
FIL* fp, /* Pointer to the file object */
UINT (*func)(const BYTE*,UINT), /* Pointer to the streaming function */
UINT btf, /* Number of bytes to forward */
UINT* bf /* Pointer to number of bytes forwarded */
)
f_lseek (
FIL* fp, /* Pointer to the file object */
DWORD ofs /* File pointer from top of file */
)
f_truncate (
FIL* fp /* Pointer to the file object */
)
f_sync (
FIL* fp /* Pointer to the file object */
)
f_opendir (
DIR* dp, /* Pointer to directory object to create */
const TCHAR* path /* Pointer to the directory path */
)
f_closedir (
DIR *dp /* Pointer to the directory object to be closed */
)
f_readdir (
DIR* dp, /* Pointer to the open directory object */
FILINFO* fno /* Pointer to file information to return */
)
f_findfirst (
DIR* dp, /* Pointer to the blank directory object */
FILINFO* fno, /* Pointer to the file information structure */
const TCHAR* path, /* Pointer to the directory to open */
const TCHAR* pattern /* Pointer to the matching pattern */
)
f_findnext (
DIR* dp, /* Pointer to the open directory object */
FILINFO* fno /* Pointer to the file information structure */
)
f_mkdir (
const TCHAR* path /* Pointer to the directory path */
)
f_unlink (
const TCHAR* path /* Pointer to the file or directory path */
)
f_rename (
const TCHAR* path_old, /* Pointer to the object to be renamed */
const TCHAR* path_new /* Pointer to the new name */
)
f_stat (
const TCHAR* path, /* Pointer to the file path */
FILINFO* fno /* Pointer to file information to return */
)
f_chmod (
const TCHAR* path, /* Pointer to the file path */
BYTE attr, /* Attribute bits */
BYTE mask /* Attribute mask to change */
)
f_utime (
const TCHAR* path, /* Pointer to the file/directory name */
const FILINFO* fno /* Pointer to the time stamp to be set */
)
f_chdir (
const TCHAR* path /* Pointer to the directory path */
)
f_chdrive (
const TCHAR* path /* Drive number */
)
f_getcwd (
TCHAR* buff, /* Pointer to the directory path */
UINT len /* Size of path */
)
f_getfree (
const TCHAR* path, /* Path name of the logical drive number */
DWORD* nclst, /* Pointer to a variable to return number of free clusters */
FATFS** fatfs /* Pointer to return pointer to corresponding file system object */
)
f_getlabel (
const TCHAR* path, /* Path name of the logical drive number */
TCHAR* label, /* Pointer to a buffer to return the volume label */
DWORD* vsn /* Pointer to a variable to return the volume serial number */
)
f_setlabel (
const TCHAR* label /* Pointer to the volume label to set */
)
f_mount (
FATFS* fs, /* Pointer to the file system object (NULL:unmount)*/
const TCHAR* path, /* Logical drive number to be mounted/unmounted */
BYTE opt /* 0:Do not mount (delayed mount), 1:Mount immediately */
)
f_mkfs (
const TCHAR* path, /* Logical drive number */
BYTE sfd, /* Partitioning rule 0:FDISK, 1:SFD */
UINT au /* Size of allocation unit in unit of byte or sector */
)
f_fdisk (
BYTE pdrv, /* Physical drive number */
const DWORD szt[], /* Pointer to the size table for each partitions */
void* work /* Pointer to the working buffer */
)
f_putc (
TCHAR c, /* A character to be output */
FIL* fp /* Pointer to the file object */
)
f_puts (
const TCHAR* str, /* Pointer to the string to be output */
FIL* fp /* Pointer to the file object */
)
f_printf (
FIL* fp, /* Pointer to the file object */
const TCHAR* fmt, /* Pointer to the format string */
... /* Optional arguments... */
)
f_gets (
TCHAR* buff, /* Pointer to the string buffer to read */
int len, /* Size of string buffer (characters) */
FIL* fp /* Pointer to the file object */
)