/
electronic_modules
/
microSD
Обзор
Документация
Войти
/
electronic_modules
/
microSD
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
MICROSD.h
101 строка
3 KB
Электронные Модули | Electronic Modules
Add files via upload
21 окт 2025, 22:09
Не верифицирован
21 окт 2025, 22:09
c1735bc
Код
Авторство
О чём код?
#ifndef MICROSD_H #define MICROSD_H #include <Arduino.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 MicroSDIOFile : public Print { private: char _name[13]; // 8.3 filename format File *_file; // Underlying file pointer bool _isOpen; public: MicroSDIOFile(); MicroSDIOFile(File f, const char *name); ~MicroSDIOFile(); // 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); MicroSDIOFile 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 MICRO_SD { private: int _MSD_CMD; int _MSD_CLK; int _MSD_DAT0; int _MSD_DAT1; int _MSD_DAT2; int _MSD_DAT3; bool _initialized; public: MICRO_SD(int MSD_CMD, int MSD_CLK, int MSD_DAT0, int MSD_DAT1, int MSD_DAT2, int MSD_DAT3); // Initialization bool initial(); void finish(); // File operations MicroSDIOFile open(const char *filename, uint8_t mode = MSD_FILE_READ); MicroSDIOFile 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(); // SDIO specific functions bool set4BitMode(); bool set1BitMode(); uint32_t getCID(); uint32_t getCSD(); }; #endif