1. 可能是文件路径或者文件后缀有错误。
2. 可能f_open不支持长文件名。
我的问题就是第二种。
问题场景:
使用f_open打开的文件路径为: 0:/pic/19700101080041.jpg
代码如下:
char* time_string = "0:/pic/19700101080041.jpg";
ret = f_open(&fd,time_string,FA_OPEN_ALWAYS | FA_WRITE | FA_READ);
if (ret != FR_OK) {
printf("#fp open error,%d#\n",ret);
return;
}
然后就会报错:FR_INVALID_NAME。
解决办法:
将ffconf.h中的FF_USE_LFN这个宏设置为大于0的数,我的设置为2。FF_USE_LFN为0的话是不支持长文件名的。