FRESULT MMC_SD_File_Write( u8 *w_data, u8 length )
{
FRESULT myres;
FIL myfsrc;
UINT mybr;
//打开文件
myres = f_open(&myfsrc, FILE_PATH, FA_CREATE_NEW | FA_WRITE);
//打开成功
if( myres == FR_OK)
{
myres = f_write( &myfsrc, w_data, length, &mybr );
f_close(&myfsrc);
}
//如果文件已经存在,以追加的方式写入
else if( myres == FR_EXIST )
{
myres = f_open(&myfsrc, FILE_PATH, FA_OPEN_ALWAYS | FA_WRITE);
myres = f_lseek(&myfsrc, myfsrc.fsize);
myres = f_write( &myfsrc, w_data, length, &mybr );
f_close(&myfsrc);
}
//打开失败
else
{
f_close(&myfsrc);
}
return myres;
}
注:f_mount这个函数在调用上面的函数之前就已经调用了。
问题点是:
FILE_PATH文件在SD卡里不存时,会创建新的文件,但不会将w_data的内容写入在该文件里,并返回FR_DISK_ERR的错误代码。
请问这可能问题出现在哪里?
|