Arduino-ESP32中的SD卡管理

引入库

#include "FS.h"
#include "SD.h"
#include "SPI.h"

cpp建立SD卡操作类

class SdCard
{
   
private:
  char buf[128];

public:
  void init();

  void listDir(const char *dirname, uint8_t levels);

  void createDir(const char *path);

  void removeDir(const char *path);

  void readFile(const char *path);

  String readFileLine(const char *path, int num);

  void writeFile(const char *path, const char *message);

  void appendFile(const char *path, const char *message);

  void renameFile(const char *path1, const char *path2);

  void deleteFile(const char *path);

  void readBinFromSd(const char *path, uint8_t *buf);

  void writeBinToSd(const char *path, uint8_t *buf);

  void appendBinToSd(const char *path, uint8_t *buf, size_t size);

  void fileIO(const char *path);
};

实现类方法

注意:初始化中 sd_spi->begin(CLK, MISO, MOSI, CS);不同硬件设计导致不同的引脚初始化

void SdCard::init()
{
   
  SPIClass *sd_spi = new SPIClass(HSPI);
  sd_spi->begin(CLK, MISO, MOSI, CS);
  if (!SD.begin(CS, *sd_spi))
  {
   
    Serial.println("Card Mount Failed");
    return;
  }
  uint8_t cardType = SD.cardType();

  if (cardType == CARD_NONE)
  {
   
    Serial.println("No SD card attached");
    return;
  }

  Serial.print("SD Card Type: ");
  if (cardType == CARD_MMC)
  {
   
    Serial.println("MMC");
  }
  else if (cardType == CARD_SD)
  {
   
    Serial.println("SDSC");
  }
  else if (cardType == CARD_SDHC)
  {
   
    Serial.println("SDHC");
  }
  else
  {
   
    Serial.println("UNKNOWN"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值