Просмотр полной версии : Нужна помощь с FATFS
Подскажите по работе микроконтроллера STM32F0 с SD картой. Использую библиотеку fatfs от Чана. Проблема следующая: нет записи в файл, т.е. сам файл создается, но ни f_write ни другие функции записи не записывают в этот файл информацию. Если например записать в этот файл информацию на компе, то микроконтроллер её замечательно читает, т.е. чтение и создание файла работают, а запись в файл не работает.
Alex Rider
24.06.2015, 16:34
А зачем на техническом форуме задавать этот вопрос во "Флейме"? Чтобы его поигнорили те, кто во "Флейм" заходит раз в месяц почитать анекдоты?
Я просто не понял в какую ветку его поместить :)
Viktor2312
24.06.2015, 18:52
Я просто не понял в какую ветку его поместить
В разделе "Для начинающих" последнее время подобные темы обитают, ПЛИС, микроконтроллеры и т. д. Я бы там создал тему. ИМХО.
Модераторы, пожалуйста перенесите тему в правильный раздел :)
Перенес.
Тоже ковыряюсь в данный момент с фатфс на стм32, но пока тоже сказать особо нечего.
в ffconf.h все правильно настроено?
вот такое на F103 работает
res = f_mount(0, &fs);
res = f_open(&fsrc , "0:/txt/demo.txt" , FA_OPEN_ALWAYS | FA_WRITE);
if( res == FR_NO_FILE )
res = f_open(&fsrc, "0:/txt/demo.txt" , FA_CREATE_ALWAYS | FA_WRITE);
res = f_lseek(&fsrc, f_size(&fsrc));
res = f_puts(".\r\n", &fsrc);
res = f_close(&fsrc);
res = f_mount(0, NULL);
Да в ffconf все правильно. Я вообще не могу понять как может файл создаваться а запись в него не выполняться ведь по идее если запись не работает то и файл вообще создаваться не должен. Или я неправ ?
Спасение утопающих дело рук самих утопающих :)
Отвечаю сам себе:
Выяснил что функция disk_write вообще не вызывается при том что в ffconf указано что файловая система и read и write (fs_readonly=0)
Сделал абсолютно дебильную вещь - в ff.h и в ff.c закоментил все директивы условной компиляции относящиеся к !fs_readonly и соответствующие им else ветки.
После этого функция disk_write стала вызываться и запись заработала. Потом правда пришлось увеличить задержки в функции wait_ready приблизительно в 8 раз чтобы некоторые мои sd-шки (2 штуки из 7) корректно работали :)
p.s. Если вдруг кому поможет - борда stm32f0-Discovery, версия fatfs 0.11, sd-карта подключена по spi
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot