|
Petit FatFs 百度搜索即可diskio 文件我用的是模拟SPI协议,这款IC不支持SDIO.
Petit FatFs 是 fatfs文件系统的轻量级版本,功能有限。但对于RAM 非常有限的单片机来说可以考虑一下。
它支持一下文件操作接口
FRESULT pf_mount (FATFS* fs); /* Mount/Unmount a logical drive */
FRESULT pf_open (const char* path); /* Open a file */
FRESULT pf_read (void* buff, UINT btr, UINT* br); /* Read data from the open file */
FRESULT pf_write (const void* buff, UINT btw, UINT* bw); /* Write data to the open file */
FRESULT pf_lseek (DWORD ofs); /* Move file pointer of the open file */
FRESULT pf_opendir (DIR* dj, const char* path); /* Open a directory */
FRESULT pf_readdir (DIR* dj, FILINFO* fno); /* Read a directory item from the open directory */
下面这条是我自己加的
DWORD Get_opened_file_size(void);
注意以下几点:
pffconf.h 文件配置更改
#define PF_USE_READ 1 /* pf_read() function */
#define PF_USE_DIR 1 /* pf_opendir() and pf_readdir() function */
#define PF_USE_LSEEK 1 /* pf_lseek() function */
#define PF_USE_WRITE 1 /* pf_write() function */
功能裁剪
#define PF_FS_FAT12 0 /* FAT12 */
#define PF_FS_FAT16 0 /* FAT16 */
#define PF_FS_FAT32 1 /* FAT32 */
支持的文件系统
我测试过读文件,TXT可以读取 .bin文件读不了.其他的没试过。
写的话,不可以写空的TXT文本。我这边办法是预先填充足够多无意义字符,然后写做替换的。还好我主要使用读功能。
原因是源码中这句代码:pff.c
remain = fs->fsize - fs->fptr;
if (btw > remain) btw = (UINT)remain; /* Truncate btw by remaining bytes */
附件是V5 F407主控的DEMO源码
|
评分
-
查看全部评分
|