我正在尝试在 STM32F051xx 上制作内部闪存,以将其视为驱动器。
这是顶层的代码:
char USER_Path[4]; /* USER logical drive path */
FATFS USER_FatFs; /* File system object for User logical drive */
FIL USER_File; /* File object */
uint32_t bytesWritten;
uint8_t text[] = "Text to write to logical disk";
if (FATFS_LinkDriver(&USER_Driver, USER_Path) == 0) {
if(f_mount(&USER_FatFs, (TCHAR const*)USER_Path, 0) == FR_OK) {
if(f_open(&USER_File, "STM32.TXT", FA_CREATE_ALWAYS | FA_WRITE) == FR_OK) {
if(f_write(&USER_File, text, sizeof(text), (void *)&bytesWritten) == FR_OK); {
f_close(&USER_File);
}
}
}
}
f_mount() 返回 FR_OK,但是当涉及到通过 f_open() 创建新文件时,它调用 find_volume(),它调用 check_fs() 返回 FR_NO_FILESYSTEM。我认为这是因为没有创建引导扇区,但我不知道该怎么做。
我已经编写了 USER_read()、USER_write() 和 USER_ioctl() 函数,但我不知道在 USER_initialize() 函数中要写什么。现在我把它留在原来的状态,它返回 RES_OK 而不做任何事情。我觉得这可能是问题的根源。
有什么建议么?