stm32H7 Операция с файлом FATFS на внутренней флеш-памяти

Столкнулся с проблемой на STM32H7 с использованием CMSISV2 freertos при выполнении файловых операций во внутренней флеш-памяти. Но во внутренней вспышке это сделать не удалось. Ошибка при открытии файла с помощью f_open. Есть какой-либо способ сделать это? Получение ошибки типа FR_NOT_READY, что означает, что физический диск не может работать в файле заголовка.

FIL file;
FRESULT res;
FATFS fs; 
BYTE work[513] = {0};
char mynewdiskPath[4];
uint8_t workBuffer[_MAX_SS];

if(FATFS_LinkDriver(&mynewdisk_Driver, mynewdiskPath) == 0)
{   
    printf("if prt main.c\r\n");
    res = f_mkfs(mynewdiskPath, FM_FAT, 1, workBuffer, sizeof(workBuffer));
    if (res != FR_OK)
    {
        return;
    } 
    res = f_mount(&fs,  (TCHAR const*)mynewdiskPath, 0);
    if(res != FR_OK) {
        return;
    } 

    res = f_open(&file, "sample.txt", FA_CREATE_NEW | FA_WRITE);
    if (res != FR_OK) {
        return;
    } 

    char writeBuff[] = "Hello\r\n";
    unsigned int bytesWritten;

    res = f_write(&file, writeBuff, strlen(writeBuff), &bytesWritten);
    if(res != FR_OK) {
        return;
    } 

    res = f_close(&file);
    if(res != FR_OK) {
        return;
    } 
   res = f_open(&file, "sample.txt", FA_READ);
    if (res != FR_OK) {
    } 

    char readBuff[10];
    unsigned int bytesRead;

    res = f_read(&file, readBuff, sizeof(readBuff)-1, &bytesRead);
    if(res != FR_OK) {
        return;
    } 
    res = f_close(&file);
    if(res != FR_OK) {
        return;
   }
} 

}

0 ответов

Другие вопросы по тегам