Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

FatFS OverWrite Sorunu

Başlatan Mucit23, 28 Aralık 2017, 22:47:12

Mucit23

Selamlar

STM32F103 Çipimde en son FatFS için çalışan bir kütüphane bulmuştum. Txt Dosyası açma yazma ve okuma gibi işlemleri denemiştim o zaman, Çalışıyor sıkıntı yok gibi.

Şimdi Datalogger benzeri bir uygulama yapmaya çalışıyorum Fakat şöyle bir sorun var. Daha Önce Oluşturduğum bir txt dosyasının içerisine yazma yapacağım.
Bunun için aşağıdaki gibi bir yapı kullanıyorum.

if (f_open(&fil, file_name, FA_WRITE) == FR_OK)
{
	 f_printf(&fil,"%s",sd_buffer);
	 f_close(&fil);
}


Bu kod çalışıyor fakat eski verilerin üzerine yazma yapmıyor. Sanki her seferinde Yeniden bir dosya açılıyor ve bu dosya içerisine yazma yapılıyor. Dolayısıyla ben dosyası bilgisayarla açtığımda son yazılan veriyi görüyorum.

Sorunun çözümü çok basit olabilir emin değilim ama ben bulamadım. Bilgisi olan var mı?

kantirici

Önce dosya var mı diye kontrol etmek daha mantıklı. (FA_OPEN_EXISTING) eğer varsa dosya yazım için açılır, yoksa yenisi oluşturulup yazılır.

ErsinErce

F_open yerine open_append fonksiyonunu çağırman lazım

Mucit23

Fatih Sadece FA_OPEN_EXISTING işe yaramadı. Aynı şekilde devam ediyor.

@ErsinErce hocam benim ff kütüphanesinde o fonksiyon yok. Ama ElmChan bir kod paylaşmış. Aynı fonksiyonu Google'da arayınca denk geldim.
http://elm-chan.org/fsw/ff/res/app1.c
Bahsettiğiniz Bumudur?

ctn1905

kaç adet yazdıysan imleçi ona göre kaydır ve öyle yaz,

f_lseek(dosya, satır no); imleç kaydırma fonksiyonu,
ve f_write ile yazmayı deneyebilir misin.

Mucit23

@ErsinErce Evet hocam Bu fonksiyon çözdü sorunu. Teşekkürler  :)