STM32的FATFS文件系统出现“无法建立文件 res返回值不为0”是怎么回事?

2025-06-28 07:11:56
推荐回答(1个)
回答1:

f_open的返回不为零的可能性有很多种,可以根据具体的返回值,找到错误类型。


下面是具体的错误类型:


typedef enum {
FR_OK = 0, /* (0) Succeeded */


FR_DISK_ERR, /* (1) A hard error occurred in the low level disk I/O layer */


FR_INT_ERR, /* (2) Assertion failed */


FR_NOT_READY, /* (3) The physical drive cannot work */


FR_NO_FILE, /* (4) Could not find the file */


FR_NO_PATH, /* (5) Could not find the path */


FR_INVALID_NAME, /* (6) The path name format is invalid */


FR_DENIED, /* (7) Access denied due to prohibited access or directory full */


FR_EXIST, /* (8) Access denied due to prohibited access */

FR_WRITE_PROTECTED, /* (10) The physical drive is write protected */


FR_INVALID_DRIVE, /* (11) The logical drive number is invalid */


FR_NOT_ENABLED, /* (12) The volume has no work area */


FR_NO_FILESYSTEM, /* (13) There is no valid FAT volume */


FR_MKFS_ABORTED, /* (14) The f_mkfs() aborted due to any parameter error */


FR_TIMEOUT, /* (15) Could not get a grant to access the volume within defined period */


FR_LOCKED, /* (16) The operation is rejected according to the file sharing policy */


FR_NOT_ENOUGH_CORE, /* (17) LFN working buffer could not be allocated */


FR_TOO_MANY_OPEN_FILES, /* (18) Number of open files > _FS_SHARE */


FR_INVALID_PARAMETER /* (19) Given parameter is invalid */
} FRESULT;

还有f_mount也有返回值,你应该看看是否mount成功。