Знакомимся с ESP32, часть 2: заводим SD-карту
Всем привет. Мой пост, который я опубликовал около часа назад уже выполз в горячее сообщества, и я набрал аж 10 подписчиков (спасибо). Видимо, людям интересна данная тема. В этом выпуске мы рассмотрим подключение SD-карты к ESP32. Ну что же, поехали!
Я хочу выразить особую благодарность разработчикам arduino-esp32, но их библиотека SD... не работает. Либо вылезают ошибки при компиляции, либо... Помните, я в первой части говорил, что к ESP можно прикрутить внешнюю flash-память на 4-16 МБ? Она подключается по SPI. Прошивки, компилируемые в Arduino IDE, заливаются именно в эту память. Как бы я не подключал SD-карту: ставил подтягивающий резистор на SS, отключал питание SD на время загрузки, но ESP32 в консоль выдавала ошибку о том, что ей не удаётся прочитать flash-память. SD-карта, видимо, блокирует всю SPI шину. Ладно.
Пришлось искать альтернативную библиотеку (на это действие я убил не один час). И такой стала вот эта. Процесс установки более чем обычен: кидаем всё из ZIP-файла в папку libraries. Библиотека позволяет назначить произвольные пины для работы карты. Я подключил так:
ESP32 <> SD
D5 <> SS
D23 <> MOSI
D18 <> SCK
D19 <> MISO
И функции begin() нужно передать пины, к которым мы подключили карту в порядке SS, MOSI, MISO, SCK.
И вдруг, неожиданно, всё заработало. Попробуйте сами: возьмите пример nanosdcard2, и не забудьте поменять аргументы функции SD.begin().
Извиняюсь за столь короткий пост, очень скоро будет третий, про всякие порты сенсорных кнопок, АЦП и т. д.
Но там же заявлен SDIO (возможно даже полный, с 4-я линиями данных).
А как новый файл создать? Обычно когда открывают файл для записи при его отсутствии он создается, а тут не создается, просто возвращается ошибка.
И как удалить файл? как удалить его содержимое? Как удалить часть содержимого?