MCU - stm32f407vgt6
IDE -True Studio
附加 -CubeMx
说明-
我正在尝试将文件从 USB 驱动器复制到具有不同名称的同一个 USB 驱动器。
源文件 - FILE2.txt
- 此文件存在于驱动器中,大小为 3KB
目标文件 - file2copy.txt
- 此文件将在同一驱动器中创建,FILE2.txt
并将复制的内容。
代码-
int CopyFile(char *srcFile, char *destFile)
{
FATFS fs0;
FIL fsrc, fdest;
BYTE buffer[4096];
FRESULT res;
UINT br, bw;
f_mount(&fs0, USBHPath, 0);
res = f_open(&fsrc, (const TCHAR*)srcFile, FA_READ | FA_OPEN_EXISTING);
if (res) return 0;
else
{
Green_Blink(100);
res = f_open(&fdest, (const TCHAR*)destFile, FA_WRITE | FA_CREATE_ALWAYS);
if (res) return 0;
else
{
Green_Blink(100);
for (;;) {
res = f_read(&fsrc, buffer, sizeof buffer, &br); /* Read a chunk of source file */
if (res || br == 0) break; /* error or eof */
res = f_write(&fdest, buffer, br, &bw); /* Write it to the destination file */
if (res || bw < br) break; /* error or disk full */
f_sync(&fdest);
}
}
}
f_close(&fsrc);
f_close(&fdest);
f_mount(0, USBHPath, 0);
return 1;
}
错误-
我能够打开源文件,但无法在驱动器中创建目标文件。
res = f_open(&fdest, (const TCHAR*)destFile, FA_WRITE | FA_CREATE_ALWAYS);
if (res) return 0;
res 在这种情况下变为真。
所以我的问题是我如何在同一个逻辑驱动器中复制文件以及在该驱动器中打开目标文件有什么问题。
提前致谢。