STM32的FATFS文件系统 无法建立文件 res返回值不为0,到底是怎么回事

发布网友 发布时间:2024-10-09 10:40

我来回答

3个回答

热心网友 时间:2024-11-19 05:07

问题没表述清楚,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_INVALID_OBJECT, /* (9) The file/directory object is invalid */
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成功。

热心网友 时间:2024-11-19 05:05

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成功。

热心网友 时间:2024-11-19 05:06

关注
mark

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com