2. SPIFFS.open //创建或打开文件
参数:4. SPIFFS.exists("/test.txt") //判断有没有某个文件
SPIFFS.exists("/test.txt");5. SPIFFS.remove("/test.txt"); //删除某个文件
SPIFFS.exists("/test.txt")6. SPIFFS.rename("原文件名","新文件名"); //文件重命名
7. SPIFFS.end(); //结束文件系统挂载
3. file.println(""); //往文件中写入一行内容
这个方法有好多个重载, 输入内容的方式比较丰富,可用看一下源码了解一下4. file.printf(); //写入内容
file.printf("tizhong:%dKG",90);5. file.find('!'); //在文件中寻找某个char或字符串
返回布尔值!4. file.findUntil("haha","!"); //在文件中寻找某个char或字符串(遇到某字符串就停止)
返回布尔值!5. file.close(); //关闭文件
6. file.size(); //文件大小
读模式下能返回文件大小,写模式下返回 -负值文件大小8. file.readStringUntil(); //读取字符串, 遇到终止符终止, 返回读取字符串
9. file.readBytes(); //读取数据到buf中,
char *buf;10. file.readBytesUntil('1',buf,15); //读取数据到buf中, 遇到终止符终止
uint8_t *buf;三. 简单测试
#include <Arduino.h>
#include <SPIFFS.h>
void setup()
{
Serial.begin(115200);
delay(3000);
Serial.println("opening SPIFFS");
while (!SPIFFS.begin())
{
Serial.print("...");
}
Serial.println("SPIFFS OK!");
File file = SPIFFS.open("/test.txt", FILE_WRITE);
if (!file)
{
Serial.println("open file failed");
}
Serial.println(file.print("hello,xiongba!"));
file.println("xiongba,haha");
Serial.println(file.print("hello,xiongba!"));
file.printf("tizhong:%dKG",90);
file.close();
file = SPIFFS.open("/test.txt", FILE_READ);
Serial.print("可用file.available():");
Serial.println(file.available());
Serial.print("test.txt的大小:");
Serial.println(file.size());
Serial.print("读取文件");
String data = file.readString();
Serial.println(data);
Serial.print("寻找字符串");
Serial.println(file.find('!'));
file.findUntil("haha","!");
Serial.println(file.name());
file.close();
Serial.printf("SPIFFS的总体积: %d 字节\r\n", SPIFFS.totalBytes());
Serial.printf("SPIFFS的已用体积: %d 字节\r\n", SPIFFS.usedBytes());
Serial.print("现在存在/test.txt吗:");
Serial.println(SPIFFS.exists("/test.txt"));
Serial.println("现在把/test.txt改名为/test2.txt");
SPIFFS.rename("/test.txt", "/test2.txt");
Serial.print("现在存在/test.txt吗:");
Serial.println(SPIFFS.exists("/test.txt"));
Serial.print("现在存在/test2.txt吗:");
Serial.println(SPIFFS.exists("/test2.txt"));
Serial.println("删除/test2.txt");
SPIFFS.remove("/test2.txt");
Serial.print("现在还存在/test2.txt吗:");
Serial.println(SPIFFS.exists("/test2.txt"));
SPIFFS.end();
}
void loop()
{
}
#include <Arduino.h>
#include <SPIFFS.h>
void setup()
{
Serial.begin(115200);
delay(3000);
Serial.println("opening SPIFFS");
while (!SPIFFS.begin())
{
Serial.print("...");
}
Serial.println("SPIFFS OK!");
File file = SPIFFS.open("/test.txt", FILE_WRITE);
if (!file)
{
Serial.println("open file failed");
}
Serial.println(file.print("hello,xiongba!"));
file.println("xiongba,haha");
Serial.println(file.print("hello,xiongba!"));
file.printf("tizhong:%dKG",90);
file.close();
file = SPIFFS.open("/test.txt", FILE_READ);
Serial.print("可用file.available():");
Serial.println(file.available());
Serial.print("test.txt的大小:");
Serial.println(file.size());
Serial.print("读取文件");
String data = file.readString();
Serial.println(data);
Serial.print("寻找字符串");
Serial.println(file.find('!'));
file.findUntil("haha","!");
Serial.println(file.name());
file.close();
Serial.printf("SPIFFS的总体积: %d 字节\r\n", SPIFFS.totalBytes());
Serial.printf("SPIFFS的已用体积: %d 字节\r\n", SPIFFS.usedBytes());
SPIFFS.end();
}
void loop()
{
}
2. FILE_APPEND模式
File file = SPIFFS.open("/test.txt", FILE_APPEND);麦克纳姆轮的移动方式是基于一个有许多位于机轮周边的轮轴的中心轮的原理上,这些成角度的周边轮轴把一部分的机轮转向力转化到一个机轮法向力上面。
Arduino-ESP32项目提供的Preferences库是一个专为ESP32设计的非易失性存储解决方案,它替代了传统的Arduino EEPROM库,提供了更强大、更可靠的数据存储功能。
ESP32-CAM与MicroPython结合可实现摄像头图像采集、视频流传输等功能,不过Micropython官方没有支持ESP32-CAM的固件,需要烧录第三方的专有固件。
相信很多人都有把绿植给养死的经历,可能是浇水过多、忘记浇水、较长时间不在家不能浇水等,本文介绍一种可以灵活定制的智能浇花方案。
MicroPython 在 ESP32 上支持线程(Thread)功能,通过_thread模块实现。线程允许程序并发执行多个任务,适合处理需要同时运行的场景,例如传感器数据采集和网络通信。
掌控板3.0升级了主控,还主打AI。带有双麦克风阵列,增加了音频解码芯片,板载了一个1W喇叭,还把之前的单色屏幕换成了1.47寸的彩色屏幕,有更多的可玩性。
使用了 MicroPython 库,通过 定时器(Timer) 和 ADC(模数转换器) 功能来实时读取传感器数据。使用定时器可以实现高精度、非阻塞、低资源消耗的周期性任务,保证实时性和可靠性,特别适用于嵌入式系统中的多任务处理和低功耗场景。
LED点阵屏由LED发光二极管组成,通过控制LED亮灭来显示文字、图片、动画、视频等,被广泛应用于公共场合做信息展示,如广告屏、公告牌等。
ESP32的DAC函数可以实现真正的模拟输出。