• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Не могу сохранить фото в LittleFS

taras150162

New member
Нашел код, где ESP32-CAM делает фото и сохраняет в свою феш-память. У меня такой же проект, но esp8266 и смарт-камера. Код адаптировал, но похоже не совсем.
Код записи (только суть) :

#define FILE_PHOTO "/image.png"
-----------------------------
File imgFile = LittleFS.open("FILE_PHOTO ", "w");
uint32_t jpglen = cam.frameLength();
-----------------------------
byte wCount = 0; // For counting # of writes
while (jpglen > 0) {
// read 32 bytes at a time;
uint8_t *buffer;
uint8_t bytesToRead = min((uint32_t)32, jpglen); // change 32 to 64 for a speedup but may not work with all setups!
buffer = cam.readPicture(bytesToRead);
imgFile.write(buffer, bytesToRead);
if(++wCount >= 64) { // Every 2K, give a little feedback so it doesn't appear locked up
Serial.print('.');
wCount = 0;
}
jpglen -= bytesToRead;
}
imgFile.close();

Фото сохраняется в файлик image.png и записывается в LittleFS. Но когда считываю этот файл с LittleFS, на снимке видна только "верхняя часть", т.е. в файл сохраняется только часть снимка.
И что характерно, размер файла 2к. Похоже в цикле не пишется, хотя монитор порта выводит правильное количество точек (Serial.print('.')) - по весу файла, кратно 2к.
Размер снимка вижу в том же мониторе порта.
Подскажите, пож-та, кто видит здесь ошибку.
Не могу понять как работает это выражение - "min((uint32_t)32, jpglen)" -?, что это "(uint32_t)32" ?
Буду признателен за подсказку.
 
Сверху Снизу