FatFS: fopen fehler nach "f_findfirst"

Gast #5245193
Lesenswert?

Hallo zusammen,
FatFS mit STM32 und USB-Stick geht reibungslos solange der Dateiname in 
der Firmware festcodiert ist (E511.DAT). Wenn ich aber anhand von 
"f_findfirst" beliebige Datei mit der Endung ".DAT" suche und danach 
versuche diese zu öffnen, scheitert die Funktion "f_open".
wo liegt der Fehler? muss irgendwas zwischen f_findfirst und f_open 
geschehen? reinitialisiert?
Danke für eure Hilfe.
Gruß

      fr = f_findfirst(&dp, &fno, "", "*.DAT");
      if (fr == FR_OK && fno.fname[0])
          strcpy(file_ndesc[0].file_name, fno.fname);
      ....

      if(f_open(&fp,file_ndesc[0].file_name,FA_READ)==FR_OK)
      {
         printf("Ok");
      }
      else
      {
         printf("Fehler");
      }
Gast #5245373
Lesenswert?

Erstmal Danke Rufus für die Antwort.
ich habe f_closedir schon danach aufgerufen. Leider hat nichts gebracht.
Ein anderer Vorschlag vielleicht?
Danke.

      fr = f_findfirst(&dp, &fno, "", "*.DAT");
      if (fr == FR_OK && fno.fname[0])
          strcpy(file_ndesc[0].file_name, fno.fname);


      if(f_open(&fp,file_ndesc[0].file_name,FA_OPEN_EXISTING)==FR_OK)
      {
         printf("Ok");
      }
      else
      {
         printf("Fehler");
      }

      f_closedir(&dp);
Gast #5245392
Lesenswert?

wenn ich debugge finde ich in den tiefen "Dschungel" von FatFS einen 
Rückgabefehler RES_NOTRDY beim Aufruf voin disk_read(....). Ist es ein 
Hindweis auf Timming fehler oder lege ich falsch?
Danke für eure Hilfe.
Gruß

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren