как при помощи fatfs добавлять записи в txt файл
Добавлено: Пн июн 06, 2016 17:55:02
Суть вопроса в следующем подключаем sd карту к микроконтроллеру, создаем на ней или открываем текстовый файл и записываем в него какие-то данные, все хорошо, но как только перезагрузить мк, то данные начнут писаться снова с самого начала файла, стерев все предыдущее. как сделать, что бы данные дописывались в файл, а не перезаписывались?
f_lseek(&MyFile, b); получается возвращает 0 всегда и с нуля записываются новые данные - почему? Должно же прочитать размер файла, вернуть это значение и далее дозаписывать, но нет
Код: Выделить всё
if(f_mount(&fileSystem, SD_Path, 1) == FR_OK) //подключаем флешку
{
uint8_t path[8] = "LOG.TXT";
path[7] = '\0';
res = f_open(&MyFile, (char*)path, FA_WRITE | FA_CREATE_ALWAYS); //открываем файл или если его нет, то создаем
b = f_size(&MyFile);
res = f_lseek(&MyFile, b);
res = f_write(&MyFile, &enter, 1, &bytes);
res = f_write(&MyFile, &LF, 1, &bytes);
res = f_write(&MyFile, h, 2, &bytes); //пишем данные
res = f_write(&MyFile, &dot, 1, &bytes);
res = f_write(&MyFile, m, 2, &bytes);
res = f_write(&MyFile, &dot, 1, &bytes);
res = f_write(&MyFile, s, 2, &bytes);
res = f_write(&MyFile, &space, 1, &bytes);
res = f_write(&MyFile, &space, 1, &bytes);
res = f_write(&MyFile, &space, 1, &bytes);
res = f_write(&MyFile, t, 4, &bytes);;
res = f_write(&MyFile, &end, 1, &bytes);
//b+=18;
res = f_close(&MyFile); //закрываем файл обязательно
}