2017-03-14 3 views
0

Ich bin mit einem SAMG55 und die FatFS Bibliothek in der ASF enthalten, scheint alles richtig zu arbeiten, aber wenn ich versuche, Daten in eine Datei anhängen regelmäßig funktioniert es nur beim ersten Mal. Ich meine, wenn meine Datei eine Größe von 100 hat, das erste Mal, dass der Mikrocontroller die Datei öffnet, sagt es, dass die Größe 100 ist, aber dann schreibe ich eine Zeile und schließe die Datei. Das nächste Mal, wenn ich es öffne, ohne den Mikrocontroller neu zu starten, sagt es, dass die Größe immer 4 ist, die Linie ist länger als 4 Bytes.Anfügen von Daten mit FatFS in einer uSD

Dies ist der Code, ich bin mit:

f_open(&file_object, (char const *)test_file_name, FA_OPEN_ALWAYS | FA_WRITE); 
f_lseek(&file_object, file_object.fsize); 
f_printf(&file_object, " Some data line \r\n"); 
f_close(&file_object); 

Haben Sie eine Vorstellung davon, was geschieht?

Danke

+0

Das Problem schreibt nicht in die Datei, wenn ich das f_printf entferne und nur die Datei öffne und schließe, geschieht sie. Dateigröße 4 Bytes – JMP

Antwort

0

In f_open(), verwenden Sie das Flag FA_OPEN_APPEND statt FA_OPEN_ALWAYS. Dann müssen Sie f_lseek() nicht verwenden. So versuchen Sie das:

f_open(&file_object, (char const *)test_file_name, FA_OPEN_APPEND | FA_WRITE); 
f_printf(&file_object, " Some data line \r\n"); 
f_close(&file_object); 
Verwandte Themen