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);
相信很多人都有把绿植给养死的经历,可能是浇水过多、忘记浇水、较长时间不在家不能浇水等,本文介绍一种可以灵活定制的智能浇花方案。
MicroPython 在 ESP32 上支持线程(Thread)功能,通过_thread模块实现。线程允许程序并发执行多个任务,适合处理需要同时运行的场景,例如传感器数据采集和网络通信。
掌控板3.0升级了主控,还主打AI。带有双麦克风阵列,增加了音频解码芯片,板载了一个1W喇叭,还把之前的单色屏幕换成了1.47寸的彩色屏幕,有更多的可玩性。
使用了 MicroPython 库,通过 定时器(Timer) 和 ADC(模数转换器) 功能来实时读取传感器数据。使用定时器可以实现高精度、非阻塞、低资源消耗的周期性任务,保证实时性和可靠性,特别适用于嵌入式系统中的多任务处理和低功耗场景。
ESP32的DAC函数可以实现真正的模拟输出。