太极创客物联网学习笔记1---2022.2.25

1.通过程序读取目录内容

程序如下:

/**********************************************************************
项目名称/Project           : 零基础入门学用物联网
程序名称/Program name      : esp8266-flash-folder-read
团队/Team                 : 太极创客团队 / Taichi-Maker (www.taichi-maker.com)
作者/Author               : CYNO 朔
日期/Date(YYYYMMDD)      : 20191109
程序目的/Purpose           : 此程序用于演示如何从NodeMCU的内置SPIFFS中文件夹里读取文件信息
                           文件夹内容将会通过串口监视器显示出来。
***********************************************************************/                            
                             
 
#include <FS.h>
 
String file_name = "/taichi-maker/myFile.txt"; //被读取的文件位置和名称
String folder_name = "/taichi-maker";         //被读取的文件夹
 
void setup() {
  Serial.begin(9600);
  Serial.println("");
  
  if(SPIFFS.begin()){ // 启动闪存文件系统
    Serial.println("SPIFFS Started.");
  } else {
    Serial.println("SPIFFS Failed to Start.");
  }
 
  File dataFile = SPIFFS.open(file_name, "w");// 建立File对象用于向SPIFFS中的file对象(即myFile.txt)写入信息
  dataFile.println("Hello Taichi-Maker.");    // 向dataFile写入字符串信息
  dataFile.close();                           // 完成文件写入后关闭文件
  Serial.println(F("Finished Writing data to SPIFFS"));
  
  //Serial.println("Finished Writing data to SPIFFS");
 
  // 显示目录中文件内容以及文件大小
  Dir dir = SPIFFS.openDir(folder_name);  // 建立“目录”对象
  
  while (dir.next()) {  // dir.next()用于检查目录中是否还有“下一个文件”
    Serial.println(dir.fileName()); // 输出文件名
  }
}
 
void loop() {
}

1.关于Arduino的Serial.print(F(""))问题

Serial.println(F(“Finished Writing data to SPIFFS”));
Serial.println(“Finished Writing data to SPIFFS”);

使用Serial.println(“Finished Writing data to SPIFFS”);
项目使用了 294644 字节,占用了 (28%) 程序存储空间。最大为 1044464 字节。
全局变量使用了 27244 字节,(33%)的动态内存,余留54676字节局部变量。最大为81920字节。
在这里插入图片描述
使用Serial.println(F(“Finished Writing data to SPIFFS”));
程序编译如下:
项目使用了 294820 字节,占用了 (28%) 程序存储空间。最大为 1044464 字节。 FLASH占用增加
全局变量使用了 27212 字节,(33%)的动态内存,余留54708字节局部变量。最大为81920字节。 SRAM占用减少
在这里插入图片描述
可以得到的结论:添加 F() 相当于为字符串常量定义了PROGMEM属性,常量字符串仍然存储在FLASH中,但是程序运行时不会再将常量字符串从FLASH中copy到SRAM中,而是直接读取FLASH中的字符串,这样一来就节约了SRAM,但是代码运行速度就下降了。

定义全局常量时,使用 PROGMEM 关键字,或使用 PROGMEM 数据类型,告诉编译器 “ 把这个信息存到程序存储空间 ”,而不是存到“ 动态内存 ”。

SRAM存储器(静态随机存取存储器)是一种只要在供电条件下便能够存储数据的存储器件,而且是大多数高性能系统的一个关键部分。
SRAM存储器是随机存取存储器的一种。所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒久保持。对比DRAM存储器里面所储存的数据需要周期性做出更新。但当电力供应停止时,SRAM存储器储存的数据还是会消失,因此SRAM存储器也称为volatile memory,这就跟在断电后还能储存数据的ROM存储器或FLASH闪存是不同的。SRAM存储器具有较高的性能,被广泛应用于在高端产品应用。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值