esp32 SD卡读写测试——读取WiFi信息连接网络

编译环境:arduino 编写
开发板选择:esp32 cam开发板

  手里恰好有一块esp32 cam的开发板,随使用了文件系统驱动SD卡,方便后期使用,使用SDMMC接口访问SD卡 。
  在文件读取部分稍微处理了一下,读取SD卡wifi信息进行连接,这样避免配网或者修改wifi信息,示例代码读取WiFi并且连接。
  使用这玩意,SD卡DATA1 和LED灯使用一个I/O口,这就有点离谱,只要有数据读写,灯就被点亮。

此原理图来源esp32 cam开发板:
在这里插入图片描述
外接47K上拉电阻。U0TXD和T0RXD用于烧录固件。

ESP-32S Module SD
14(GPIO12) HS2_DATA2(DATA2)
16(GPIO13) HS2_DATA2(CD/DATA3)
23(SDI/SD1) HS2_CMD(CMD)
13(GPIO14) HS2_CLK(CLK)
24(GPIO2) HS2_DATA0(DATA0)
26(GPIO4) HS2_DATA1(DATA1)

1、文件操作常用API

包含在:FS.cpp 文件中,有意向可以查看。
打开文件:
在这里插入图片描述

File FS::open(const String& path, const char* mode)
File FS::open(const char* path, const char* mode)

path:为打开路径,mode:为打开方式,mode可选FILE_READFILE_WRITEFILE_APPEND,即只读模式、写入模式、追加模式;

写入文件:

File print(const char * message)
message:要写入的信息
size_t File::write(uint8_t c)
size_t File::write(const uint8_t *buf, size_t size)

读取文件:
在这里插入图片描述

int File::available()

返回当前指针下可读取字节数;

int File::read()
size_t File::read(uint8_t* buf, size_t size)
size_t readBytes(char *buffer, size_t length)

读取数据,该操作会移动文件指针;

关闭当前文件:
在这里插入图片描述

void File::close()

在不移动文件指针的情况下读取一个字节数据:

int File::peek()

移动文件指针,mode可选SeekSet、SeekCur、SeekEnd,分别为正常移动、移动到文件头、移动到文件尾:

bool File::seek(uint32_t pos, SeekMode mode)

返回当前文件指针位置:

size_t File::position() const

返回当前文件的大小:

size_t File::size() const

返回当前文件是否有效:

File::operator bool() const

返回最后修改文件时间:

time_t File::getLastWrite()

返回当前文件名:

const char* File::name() const

返回当前文件是否为目录:

boolean File::isDirectory(void)

打开下一个文件:

File File::openNextFile(const char* mode)

返回到目录中首文件位置:

void File::rewindDirectory(void)

检查文件或路径是否存在:

bool FS::exists(const char* path)
bool FS::exists(const String& path)

移除文件:
在这里插入图片描述

bool FS::remove(const char* path)
bool FS::remove(const String& path)

重命名文件,依次输入旧的、新的包含完整文件名的路径:
在这里插入图片描述

bool FS::rename(const char* pathFrom, const char* pathTo)
bool FS::rename(const String& pathFrom, const String& pathTo)

创建目录:
在这里插入图片描述

bool FS::mkdir(const char *path)
bool FS::mkdir(const String &path)

删除目录:
在这里插入图片描述

bool FS::rmdir(const char *path)
bool FS::rmdir(const String &path)

判断指定的目录是否是加载点:

void FSImpl::mountpoint(const char * mp)
const char * FSImpl::mountpoint()

如果是挂载点返回0,如果不是就返回非0

2、SPIFFS文件系统

包含在:SD_MMC.h头文件
挂载文件系统:

bool begin(const char * mountpoint="/sdcard", bool mode1bit=false);

取消挂载文件系统:

void end()

检测SD卡大小:

uint64_t cardSize();

格式化文件系统:

bool format()

返回文件系统总字节数:

size_
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值