十一、通过程序向闪存文件系统写入信息

news2024/11/18 15:33:47

1、闪存

(1)每一个esp8266都配有一个闪存,闪存就类似于一个小硬盘。

(2)我们编译上传的程序就存储在闪存中。

(3)闪存的全称是Serial Peripheral Interface Flash File System(SPIFFS),串行外设接口Flash文件系统。

(4)闪存除了存放程序外,还可以将网页文件或系统配置文件存放在ESP8266的闪存中。

2、示例程序

通过程序像闪存文件系统写入信息。

/***************************************************************************
 *程序目的: 如何向esp8266的SPIFFS中建立名为notes.txt,程序还向该文件写入信息
 *日期: 2022.12.30
 *作者: ZJD
 ---------------------------------------------------------------------------
 函数说明:
 SPIFFS.open(file_name, "w");
 以上函数有两个参数:
 第一个参数是被操作的文件名称,本示例中该文件为/zjd/notes.txt
 第二个参数"w"代表写入文件信息
 SPIFFS: 
 Serial Peripheral Interface Flash File System
 串行外设接口Flash文件系统
 ***************************************************************************/


#include <FS.h>

String file_name = "/zjd/notes.txt";    // 被读取的文件位置和名称

void setup() 
{
  Serial.begin(115200);                // 启动串口通讯
  Serial.println("");

  Serial.println("SPIFFS format start");   // SPIFFS格式化开始
  SPIFFS.format();                         // 格式化SPIFFS
  Serial.println("SPIFFS format finish");  // SPIFFS格式化结束

  if(SPIFFS.begin())                       // 启动SPIFFS
  {
    Serial.println("SPIFFS Started.");
  }
  else
  {
    Serial.println("SPIFFS Failed to Start.");
  }

  File dataFile = SPIFFS.open(file_name, "w");       // 建立File对象用于向SPIFFS中file对象(即note.txt)写入信息
  dataFile.println("Hello IOT World.");              // 向dataFile写入字符串信息
  dataFile.close();                                  // 完成文件写入后关闭文件
  Serial.println("Finished Writing data to SPIFFS"); // 完成向SPIFFS写入数据
}


void loop() 
{
  
}

3、程序说明

(1)#include <FS.h>

使用SPIFFS存储文件前,需要包含FS.h文件。

(2)SPIFFS.format();            

对闪存文件系统进行格式化。这很像我们对U盘进行格式化的操作。无需每次使用闪存文件系统都对它进行格式化操作。

(3) SPIFFS.begin()  

用于启动闪存文件系统。在每次使用闪存文件系统以前都需要执行这一操作。如果闪存文件系统启动成功,则返回真,否则返回假。

(4)File dataFile = SPIFFS.open(file_name, "w");

open函数用于对SPIFFS进行操作。该函数共有两个参数。第一个参数file_name是被操作的文件名称。第二个参数"w"代表操作为向SPIFFS写入文件信息。请注意:如果文件系统没有file_name文件,此操作将会在文件系统中建立该文件。如果文件系统有该文件,则程序将会重新建立该文件,即原有文件信息将会被覆盖。

(5)dataFile.println("Hello IOT World.");  

用于向dataFile文件写入信息,信息内容为"Hello IOT World";

(6)dataFile.close();

用于关闭dataFile文件。结束文件操作后,应执行此操作。

4、设置、编译上传

(1)点击工具→Flash Size

选择合适的Flash空间大小。

(2)编译上传程序

(3)串口打印

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/128475.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker高级篇-docker-compose容器编排介绍及实战

Docker-compose是什么?能干嘛?解决了哪些痛点? 是什么? Docker-compose是Docker官方推出 的一个工具软件,可以管理多个Docker容器组成的一个应用。你需要编写一个一个YAML格式的配置文件:docker-compose.yml。写好多个容器之间的调用关系。然后,只需要一个命令,就能…

嵌入式:ARM汇编语言程序设计基础教程

文章目录汇编语言程序设计的步骤顺序程序设计分支程序设计循环程序设计子程序设计寄存器传递参数方式存储区域传递参数方式堆栈传递参数方式汇编语言程序设计的步骤 ① 合理地分配存储器资源&#xff0c;将前述的目标系统‘数据结构模型’表示到各存储器单元。 ② CPU寄存器数…

pytorch集锦(4)-ResNet图像分类

目录加载训练好的模型下载模型权重图像预处理打开要预测的图像传递图像运行模型下载数据打开imagenet_classes.txt预测结果前5个最可能分类加载训练好的模型 pip3 install pillow>>> from torchvision import models >>> dir(models) [AlexNet, DenseNet, I…

有哪些简单、免费、适合中小型企业的 CRM 软件?

有哪些简单、免费、适合中小型企业的 CRM 软件&#xff1f; 为了更好的管理客户&#xff0c;和客户建立持续的良好关系&#xff0c;很多企业开始采用CRM软件。 但是免费且好用的CRM软件并不多见&#xff0c;因此选择一款适合中小型企业的CRM软件需要注意以下方面。 1. 知己&…

微信小程序布局图片上面显示文字

实现的效果&#xff1a; xml布局文件&#xff1a; <view class"image-parent"> <image classimage modewidthFix src../../images/answer-ad.png></image> <view class"child">child</view> </view> css文件&a…

26-剑指 Offer 29. 顺时针打印矩阵

题目 输入一个矩阵&#xff0c;按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] [[1,2,3], [4,5,6], [7,8,9]] 输出&#xff1a;[1,2,3,6,9,8,7,4,5] 示例 2&#xff1a; 输入&#xff1a;m…

年终摸鱼:用高效的技术对抗繁琐的运维日常

2022年的最后一周 免疫系统直接把我带入高端局 霍一下子烧到40&#xff0c; 差点起来写遗嘱 好在第二天就降到了38.5 现在除了有点咳嗽、头昏、无力。。。 也没啥大问题——到底是年轻。 谁能想到疫情蔓延三年&#xff0c; 所有人还要来一场集体“免疫”呢&#xff1f; …

太力科技冲刺上市:石正兵为实控人,股东刘健为失信被执行人

近日&#xff0c;广东太力科技集团股份有限公司&#xff08;下称“太力科技”&#xff09;在深圳证券交易所递交招股书&#xff0c;准备在创业板上市。 本次冲刺上市&#xff0c;太力科技计划募资5.42亿元&#xff0c;其中3.20亿元用于太力武汉生产及物流中心建设项目&#xf…

高频次收集个人信息情况分析

奇安信 2022年第二季度App收集个人信息检测报告 下载地址 2022年第二季度 APP收集个人信息 检测报告 奇安信 病毒响应中心 研究背景 随着互联网和移动设备的发展&#xff0c;手机已成为人人都拥有的设备&#xff0c;其中各式各样的APP更是丰富了人们的生活&#xff0c;从社交…

TCP/IP网络编程(11) 套接字和标准IO

标准IO函数的优点 标准IO函数具备两大优点&#xff1a; 标准IO函数具备良好的移植性标准IO函数可以利用缓冲提高性能 不仅是IO函数&#xff0c;所有的标准函数都具有很好的移植性&#xff0c;为了支持所有的操作系统和编译器&#xff0c;这些函数都是按照ANSI C标准定义的&am…

大数据和数据可视化为什么这么受欢迎?

“大数据”已经从一个概念性质的词语转变为了对经济社会各个领域都具有渗透影响的事物&#xff1b;并且随着互联网技术的持续发展&#xff0c;大数据所产生的影响呈现出了范围不断扩大&#xff0c;深度持续扩展的新特征。 大数据时代就是指人们的生产、生活和工作中出现更多的…

windows VS2015 Steup 打包发布软件并附带动态链接库dll

打包&#xff1a; 方法一&#xff1a;VS 2015 Steup 打包发布软件_柠檬野生菌的博客-CSDN博客_vs2015 exe发布 1、插件下载Microsoft Visual Studio 2015 Installer Projects 工具->扩展与更新->联机->搜索 Installer Projects 2、安装 关掉VS 双击下载好的 .exe …

ArcGIS基础实验操作100例--实验21按区域修改栅格值

本实验专栏来自于汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 基础编辑篇--实验21 按区域修改栅格值 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff08;1&…

8、多线程

文章目录8、多线程8.1 线程中的进程8.2 进程中的线程8.3 自己的第一个线程8.4 线程的生命周期8.5 线程执行方式&#xff08;串行和并发&#xff09;8.6 线程休眠8.7 工作8.8 线程池8.9 同步8.10 wait和sleep8.11 线程安全问题Java零基础极速入门-讲师&#xff1a;海波 失败&…

一文快速上手Swagger

目录 1.什么是Swagger&#xff1f; 2.Swagger的作用&#xff1f; 3.Swagger的使用方法 &#xff08;1&#xff09;一般是在Spring Boot项目中进行集成&#xff0c;只需在项目中引入springfox-swagger2和springfox-swagger-ui依赖即可 &#xff08;2&#xff09;配置Swaage…

[虚幻引擎][UE][UE5]在UE中画一个线框球,网格连接画球,高阶画球并操控

[虚幻引擎][UE][UE5]在UE中画一个线框球&#xff0c;网格连接画球&#xff0c;高阶画球并操控1.材质法2.绘制调试球体3.网格连接4.高阶画球并操控1.材质法 缺点&#xff1a;是实体的&#xff0c;只能欺骗视觉&#xff0c;实际还是一个实体体积球&#xff0c;往里放东西显示不出…

电磁兼容测试整改

1.1 什么时候需要电磁兼容整改及对策 在设计阶段就应考虑电磁兼容性&#xff0c;将产品生产阶段出现电磁兼容问题可能性减小。最终要通过电磁兼容测试检验其电磁兼容标准的符合性。 由于电磁兼容的复杂性&#xff0c;即使电磁兼容设计问题考虑比较周全&#xff0c;在设计制造…

SpringBoot+AOP+自定义注解,实现日志记录/权限验证

目录自定义注解简介AOP实现日志记录1.导入依赖2.创建自定义注解3.编写切面类4.编写测试接口5.测试AOP实现权限验证1.创建自定义注解2.编写切面类3.编写测试接口&#xff1a;4.测试自定义注解简介 为什么要通过AOP来实现日志记录 在业务处理中&#xff0c;我们经常需要将一些用…

基于springboot家政管理系统

大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路…

Python数据容器--字符串(str)

1、字符串的定义 字符串是字符的容器&#xff0c;一个字符串可以存放任意数量的字符。 如&#xff1a;字符串&#xff1a;“itheima”。 2、字符串的相关操作 2.1 字符串的下标索引取值 从前向后&#xff0c;下标从0开始。从后向前&#xff0c;下标从-1开始。 my_str &quo…