1.前言

    EEPROM,叫做电可擦可编程可读寄存器(是不是觉得好官方,不知道是什么鬼?反正我也一脸懵逼),只需要知道这是一种断电后数据不会丢失的存储设备,可以用来应对需要做记录做保存的场合。简而言之,若想断电后Arduino仍然记住数据,就可以使用EEPROM。至于板子是否支持EEPROM,可以自主去查看板子的简洁。常见Arduino的EEPROM如下:

    Arduino EEPROM类库中,EEPROM的地址被设定从0开始,每个地址可以存储1B数据。所以当数据大于1B时,需要逐个字节读写。

  • Arduino UNO、Arduino Leonardo 的EEPROM有1KB=1024B的存储空间,对应地址则为0~1023;
  • Arduino Mega2560的EEPROM有4KB=4096B的存储空间,对应地址则为0~4095;

    Arduino有EEPROM类库,只需要调用EEPROM.h头文件,然后使用write()和read()函数就可以对EEPROM进行读写操作;

常用函数

1.1 write()

作用:对指定地址写入数据;
语法: EEPROM.write(address,value);
参数

  • address,EEPROM地址,起始地址为0;
  • value 写入的数据,byte型,意味着如果传入数据大于这个范围会被截断;

返回值:无;

1.2 read()

作用:从指定地址读出数据。一次读取1B数据。如果指定地址没有数据,则读出值为255;
语法: EEPROM.read(address);
参数

  • address,EEPROM地址,起始地址为0;

返回值:byte型,返回指定地址存储的数据;

注意:

  • EEPROM有10万次的擦写寿命,一次EEPROM.write会占用3ms,如果程序不断擦写EEPROM,则不用多久就损坏EEPROM,随意注意不要频繁擦写,在真正需要的时候再考虑使用,加入什么延时之类的。

3.实验

实验内容
在setup中往地址0~3中依次写入2~5,然后在loop中读取地址0~3然后把数据打印到串口显示器;
实验代码

/**
* @Desc  测试EEPROM
* @author 单片机菜鸟
* @Date  2016/12/25
*
* 注意:Arduino Mega 2560的EEPROM空间是4KB
* 也就是4*1024 B = 4096B
* 也就是地址是0~4095
*/#include<EEPROM.h>//表示EEPROM的当前地址,也就是即将要写入的地址
int addr = 0;void setup() {// 初始化串口Serial.begin(9600);//等待串口准备好while(!Serial);int value = 2;//在地址0~3依次写入2~5for(int i = addr;i<4;i++){EEPROM.write(i,value++);//延时100ms 等待写入delay(100);}
}void loop() {// put your main code here, to run repeatedly:Serial.println("read data start");int value;for(int i = addr;i<4;i++){value = EEPROM.read(i);Serial.print("addr:");Serial.print(i);Serial.print("\n");Serial.print("value:");Serial.print(value);Serial.print("\n");}Serial.println("read data end");while(1);
}

实验结果

4.总结

整体上这课还是非常简单的,唯一需要注意就是不要擦写频繁。讲完这课后,我就可以在蓝牙多彩灯加入这个功能了,记录存储当前灯颜色然后下次打开就可以使用。

转载于:https://www.cnblogs.com/danpianjicainiao/p/11048655.html

Arduino学习笔记⑦ EEPROM断电保存数据相关推荐

  1. eeprom stm8l 擦除 读写_STM8L探索套件学习笔记-EEPROM(十一)

    原标题:STM8L探索套件学习笔记-EEPROM(十一) 上节将到官方例程使用 EEPROM存储外围电路消耗的电流值,今天我们对 STM8L的EEPROM介绍下.STM8L带有的32K的FLASH和1 ...

  2. 学习笔记(五)——数据适配器、数据表、数据网格视图控件的综合应用。

    学习笔记(五)--数据适配器.数据表.数据网格视图控件的综合应用. 1.  批量修改 修改包括增加,删除以及更新3个操作,所以声明实力化3个SQL命令分别应用于插入,删除以及修改 将声明的SQL命令连 ...

  3. R学习笔记(4): 使用外部数据

    来源于:R学习笔记(4): 使用外部数据 博客:心内求法 鉴于内存的非持久性和容量限制,一个有效的数据处理工具必须能够使用外部数据:能够从外部获取大量的数据,也能够将处理结果保存.R中提供了一系列的函 ...

  4. Arduino学习笔记2

    一.蜂鸣器输出实验 1.源代码 int buzzer=2;//设置控制蜂鸣器的数字口对应板子上2口 void setup() { pinMode(buzzer,OUTPUT);//设置对应的输出模式 ...

  5. Polyworks脚本开发学习笔记(十九)-将数据对象与参考对象对齐的方法

    Polyworks脚本开发学习笔记(十九)-将数据对象与参考对象对齐的方法 把开发手册理了一遍,发现还有几个点没有记录下来,其中一个就是使用点对的粗对齐和使用参考目标的精确对齐.为了把这个学习笔记凑够 ...

  6. Mysql学习笔记(二)——表格及数据的插入

    Mysql学习笔记(二)--表格及数据的插入 文章目录 Mysql学习笔记(二)--表格及数据的插入 1.Mysql常用指令 2.创建表格 A.数据类型 B.完整性约束条件 3.查看表格 4.修改表格 ...

  7. JavaWeb黑马旅游网-学习笔记05【分类数据展示功能】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  8. HALCON 20.11:深度学习笔记(3)---Data(数据)

    HALCON 20.11:深度学习笔记(3)---Data(数据) HALCON 20.11.0.0中,实现了深度学习方法.其中,关于术语"数据"的介绍如下: 术语"数据 ...

  9. SDN软件定义网络 学习笔记(4)--数据平面

    SDN软件定义网络 学习笔记(4)--数据平面 1. 简介 2. SDN数据平面架构 2.1 传统网络交换设备架构 2.2 SDN交换设备架构 2.3 数据平面架构图 3. SDN芯片与交换机 3.1 ...

最新文章

  1. Nature替宠物正名了:宝宝身体好,猫狗或真不可少!
  2. Lasso回归的坐标下降法推导
  3. windows10配置php7.1+apache2.4+mysql5.7
  4. 微信小程序 获取用户信息并保存登录状态
  5. 前端学习(3329):闭包的形式5
  6. 【POJ - 1661】Help Jimmy(记忆化搜索,dp)
  7. 安全生产六步法是什么_支塘镇探索“五步法”压紧压实出租厂房安全生产主体责任...
  8. Eclipse错误:Syntax error on tokens, delete these tokens问题解决
  9. java text 格式化_java.text.Format
  10. 工序能力指数Cp判定标准(附免费CPK计算工具)
  11. 【文献研究】国际班轮航运的合作博弈:The coopetition game in international liner shipping
  12. 两年数据对比柱形图_【Excel技巧】制作柱形图图表完美呈现百分比,提升您的报表颜值...
  13. lcov和gcov的使用错误
  14. 【Babel】1145- 非常不错的 Babel 插件开发教程
  15. WPF实现炫酷Loading控件
  16. Linux系统的时区时间设置
  17. C语言 从键盘输入圆的半径,计算并输出圆的正内接六边形的面积,以及这个正六边形面积占圆面积之百分比
  18. python将日期分隔成单独的年月日时分列
  19. 理解Linux的.a、.so和.o文件
  20. 给热心老哥搭个窝,2021年30分钟用Discourse搭建新一代BBS论坛站全攻略

热门文章

  1. 有关ArcGIS Server Server URL问题
  2. 入手腾龙SP AF90mm MACRO
  3. oracle 清理跟踪文件trc,trm
  4. 1266: [AHOI2006]上学路线route
  5. .NET开发者必备的工具箱
  6. cocos2dX改变锚点位置
  7. 【转】PCA算法学习_1(OpenCV中PCA实现人脸降维)
  8. Debian 系统修改语言为英文
  9. zookeeper运维管理
  10. 备份文件命令SqlServer一键复制数据库脚本