/
electronic_modules
/
microSD
Обзор
Документация
Войти
/
electronic_modules
/
microSD
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
MICROSD_SPI.h
95 строк
2 KB
Электронные Модули | Electronic Modules
Add files via upload
21 окт 2025, 22:09
Не верифицирован
21 окт 2025, 22:09
c1735bc
Код
Авторство
О чём код?
#ifndef MICROSD_SPI_H #define MICROSD_SPI_H #include <Arduino.h> #include <SPI.h> #include <SD.h> // Use FILE_READ and FILE_WRITE directly from SD library #define MSD_FILE_READ FILE_READ #define MSD_FILE_WRITE FILE_WRITE class MicroSDFile : public Print { private: char _name[13]; // 8.3 filename format File *_file; // Underlying file pointer bool _isOpen; public: MicroSDFile(); MicroSDFile(File f, const char *name); ~MicroSDFile(); // File operations virtual size_t write(uint8_t data); virtual size_t write(const uint8_t *buf, size_t size); virtual int read(); virtual int peek(); virtual int available(); virtual void flush(); int read(void *buf, uint16_t nbyte); bool seek(uint32_t pos); uint32_t position(); uint32_t size(); void close(); operator bool(); char* name(); // Directory operations bool isDirectory(void); MicroSDFile openNextFile(uint8_t mode = MSD_FILE_READ); void rewindDirectory(void); // Print methods using Print::write; // Import other write methods size_t println(const char* str); size_t println(const String &str); size_t println(int num); size_t print(const char* str); size_t print(const String &str); size_t print(int num); }; class MICROSD_SPI { private: int _MSD_SPI_CS; int _MSD_SPI_DI; int _MSD_SPI_SCLK; int _MSD_SPI_DO; bool _initialized; public: MICROSD_SPI(int MSD_SPI_CS, int MSD_SPI_DI, int MSD_SPI_SCLK, int MSD_SPI_DO); // Initialization bool initial(); bool initial(uint8_t csPin); void finish(); // File operations MicroSDFile open(const char *filename, uint8_t mode = MSD_FILE_READ); MicroSDFile open(const String &filename, uint8_t mode = MSD_FILE_READ); // File system operations bool exists(const char *filepath); bool exists(const String &filepath); bool mkdir(const char *filepath); bool mkdir(const String &filepath); bool remove(const char *filepath); bool remove(const String &filepath); bool rmdir(const char *filepath); bool rmdir(const String &filepath); // Information uint64_t totalBytes(); uint64_t usedBytes(); uint64_t freeBytes(); bool isInitialized(); // Utility functions void listFiles(const char *dirname = "/"); bool format(); }; #endif