转自:https://www.arduino.cn/thread-1157-1-1.html

EEPROM (Electrically Erasable Programmable Read-Only Memory),电可擦可编程只读存储器--一种掉电后数据不丢失的存储芯片。 简而言之就是你想断电后arduino还要保存一些参数,就使用EEPROM吧。 在各型号的arduino控制器上的AVR芯片均带有EEPROM,也有外接的EEPROM芯片,常见arduino控制器的EEPROM大小: Arduino UNO、Arduino duemilanove-m328、Zduino m328均使用ATmega328芯片,EEPROM都为1K Arduino duemilanove-m168的EEPROM为512bytes Arduino 2560的EEPROM为4K
下面我们介绍arduino自带的EEPROM使用方法,arduino的库已经为我们准备好了EEPROM类库,我们要使用得先调用EEPROM.h,然后使用write和read方法,即可操作EEPROM。 另:下面的官方例子由于写成较早,所以讲EEPROM的大小都定为了512字节,实际使用中,大家可参照上面所说的EEPROM大小,自行更改。
1.写入 选择 File>Examples>EEPROM>eeprom_write

kittenblock中小学创客名师推荐的图形化编程软件

 
/*
 
* EEPROM Write
 
*
 
* Stores values read from analog input 0 into the EEPROM.
 
* These values will stay in the EEPROM when the board is
 
* turned off and may be retrieved later by another sketch.
 
*/
   
 
#include <EEPROM.h>
   
 
// EEPROM 的当前地址,即你将要写入的地址,这里就是从0开始写
 
int addr = 0;
   
 
void setup()
 
{
 
}
   
 
void loop()
 
{
 
  //模拟值读出后是一个0-1024的值,但每字节的大小为0-255,所以这里将值除以4再存储到val
 
  int val = analogRead(0) / 4;
 
  
 
  // write the value to the appropriate byte of the EEPROM.
 
  // these values will remain there when the board is
 
  // turned off.
 
  EEPROM.write(addr, val);
 
  
 
  // advance to the next address.  there are 512 bytes in
 
  // the EEPROM, so go back to 0 when we hit 512.
 
  addr = addr + 1;
 
  if (addr == 512)
 
    addr = 0;
 
  
 
  delay(100);
 
}

2.读取 选择 File>Examples>EEPROM>eeprom_read

kittenblock中小学创客名师推荐的图形化编程软件

 
/*
 
* EEPROM Read
 
*
 
* Reads the value of each byte of the EEPROM and prints it
 
* to the computer.
 
* This example code is in the public domain.
 
*/
   
 
#include <EEPROM.h>
   
 
// start reading from the first byte (address 0) of the EEPROM
 
int address = 0;
 
byte value;
   
 
void setup()
 
{
 
  // initialize serial and wait for port to open:
 
  Serial.begin(9600);
 
  while (!Serial) {
 
    ; // wait for serial port to connect. Needed for Leonardo only
 
  }
 
}
   
 
void loop()
 
{
 
  // read a byte from the current address of the EEPROM
 
  value = EEPROM.read(address);
 
  
 
  Serial.print(address);
 
  Serial.print("\t");
 
  Serial.print(value, DEC);
 
  Serial.println();
 
  
 
  // advance to the next address of the EEPROM
 
  address = address + 1;
 
  
 
  // there are only 512 bytes of EEPROM, from 0 to 511, so if we're
 
  // on address 512, wrap around to address 0
 
  if (address == 512)
 
    address = 0;
 
   
 
  delay(500);
 
}

3.清除 选择 File>Examples>EEPROM>eeprom_clear 清除EEPROM的内容,其实就是把EEPROM中每一个字节写入0,因为只用清一次零,所以整个程序都在setup部分完成。

kittenblock中小学创客名师推荐的图形化编程软件

 
/* * EEPROM Clear
 
*
 
* Sets all of the bytes of the EEPROM to 0.
 
* This example code is in the public domain.
   
 
*/
 
#include <EEPROM.h>
   
 
void setup()
 
{
 
  // 让EEPROM的512字节内容全部清零
 
  for (int i = 0; i < 512; i++)
 
    EEPROM.write(i, 0);
 
   
 
  // 清零工作完成后,将L灯点亮,提示EEPROM清零完成
 
  digitalWrite(13, HIGH);
 
}
   
 
void loop()
 
{
 
}

Arduino 中 EEprom 写入读取清除的更多相关文章

  1. arduino中SCoop库的简单应用案例

    转载:https://www.csdn.net/gather_27/MtTaggzsMDExMS1ibG9n.html arduino中SCoop库的简单应用案例首先这篇文章来在视频https://v ...

  2. spark中数据的读取与保存

    1.文本文件 (1)读取文本文件 JavaRDD<String> input =sc.textFile(dir) (2)保存文本文件 result.saveAsTextFile(dir)) ...

  3. C#中Cookies的读取

    C#中Cookies的读取   链接: 一 .写入Cookie 1. Name 和 Value 属性由程序设定,默认值都是空引用. 2. Domain属性的默认值为当前URL的域名部分,不管发出这个c ...

  4. java:OutputStream和InputStream 输出输入流,FileOutputStream,FileInputStream写入读取流

    1.在java中stream代表一种数据流(源),javaio的底层数据元,---(想像成水龙头)2.任何有能力产生数据流(源)的javaio对象就可以看作是一个InputStream对象既然它能产生 ...

  5. net快速写入/读取大量数据Postgresql

    Postgresql快速写入/读取大量数据 http://www.cnblogs.com/podolski/p/7152144.html 环境及测试 使用.net驱动npgsql连接post数据库.配 ...

  6. python中configparser模块读取ini文件

    python中configparser模块读取ini文件 ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(se ...

  7. .NET 5/.NET Core使用EF Core 5连接MySQL数据库写入/读取数据示例教程

    本文首发于<.NET 5/.NET Core使用EF Core 5(Entity Framework Core)连接MySQL数据库写入/读取数据示例教程> 前言 在.NET Core/. ...

  8. flink---实时项目--day02-----1. 解析参数工具类 2. Flink工具类封装 3. 日志采集架构图 4. 测流输出 5. 将kafka中数据写入HDFS 6 KafkaProducer的使用 7 练习

    1. 解析参数工具类(ParameterTool) 该类提供了从不同数据源读取和解析程序参数的简单实用方法,其解析args时,只能支持单只参数. 用来解析main方法传入参数的工具类 public c ...

  9. 大数据学习day34---spark14------1 redis的事务(pipeline)测试 ,2. 利用redis的pipeline实现数据统计的exactlyonce ,3 SparkStreaming中数据写入Hbase实现ExactlyOnce, 4.Spark StandAlone的执行模式,5 spark on yarn

    1 redis的事务(pipeline)测试 Redis本身对数据进行操作,单条命令是原子性的,但事务不保证原子性,且没有回滚.事务中任何命令执行失败,其余的命令仍会被执行,将Redis的多个操作放到 ...

随机推荐

  1. 【小白学PyTorch】3 浅谈Dataset和Dataloader

    文章目录: 目录 1 Dataset基类 2 构建Dataset子类 2.1 Init 2.2 getitem 3 dataloader 1 Dataset基类 PyTorch 读取其他的数据,主要是 ...

  2. 【Nginx】如何基于主从模式搭建Nginx+Keepalived双机热备环境?这是最全的一篇了!!

    写在前面 最近出版了<海量数据处理与大数据技术实战>,详情可以关注 冰河技术 微信公众号,查看<我的<海量数据处理与大数据技术实战>出版啦!>一文. 也有不少小伙伴 ...

  3. Android开发之ListView详解 以及简单的listView优化

    ListView列表视图 最常用的控件之一,使用场景例如:微信,手机QQ等等. android:divider:每个item之间的分割线,可以使用图片或者色值. android:dividerHeig ...

  4. A+B in Hogwarts (20)(模拟)

    时间限制 1000 ms 内存限制 65536 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 If you are a fan of Harry Potter ...

  5. 基于django快速开发一个网站(一)

    基于django快速开发一个网站(一) *  创建虚拟环境.基于虚拟环境创建django==2.0.0和图片加载库和mysql数据库驱动 1. 创建目录并创建虚拟环境 ╰$ mkdir Cornuco ...

  6. Java 得到指定时间加半个小时之后得时间

    Calendar c = Calendar.getInstance(); c.setTime(cur); //设置时间 c.add(Calendar.MINUTE, 1); //日期分钟加1,Cale ...

  7. 从架构到部署,全面了解K3s

    Kubernetes无处不在--开发者的笔记本.树莓派.云.数据中心.混合云甚至多云上都有Kubernetes.它已然成为现代基础设施的基础,抽象了底层的计算.存储和网络服务.Kubernetes隐藏 ...

  8. C#开发PACS医学影像处理系统(二):界面布局之菜单栏

    在菜单栏布局上,为了使用自定义窗体样式和按钮,我们需要先将窗体设置为无边框,然后添加一个Grid作为菜单栏并置顶,VerticalAlignment="Top" logo图片和标题 ...

  9. jmeter中接口测试出现乱码或不识别中文解决办法

    在查看结果是中出现乱码时:jmeter的bin目录下的jmeter.properties下最下面添加sampleresult.default.encoding=UTF-8后重新打开工具就好了 在接口的 ...

  10. 漏洞扫描工具acunetix12会遇到的问题

    1.如果安装好之后,打开工具时显示无法访问,首先去看任务管理器当中,acunetix的服务是否启动了 2.如果忘记了账号密码,可以在安装目录下,双击ChangePassword.exe进行重置密码