利用EEPROM实现arduino的断电存储

简介: 转载请注明:@小五义http://www.cnblogs.com/xiaowuyi  QQ群:64770604 一、EEPROM简介       EEPROM (Electrically Erasable Programmable Read-Only Memory),上电可擦可编程只读存储器--一种掉电后数据不丢失的存储芯片,简而言之就是你想断电后arduino还要保存一些参数,就使用EEPROM吧。

转载请注明:@小五义http://www.cnblogs.com/xiaowuyi  QQ群:64770604

一、EEPROM简介

      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 leonardo介绍arduino自带的EEPROM使用方法,以及arduino插拔次数的计数方法,arduino中已经存在EEPROM类库,我们要使用得先调用EEPROM.h,然后使用write和read方法,即可操作EEPROM。

二、arduino iDE中的例程(具体程序请从ide中添加)

     1.写入例程

     选择 File>Examples>EEPROM>eeprom_write。

     2.读取例程
     选择 File>Examples>EEPROM>eeprom_read。

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

三、利用EEPROM存储记录arduino使用次数

    记录arduino的使用次数,就是记录arduino上电次数。考虑利用eeprom进行存储,每上电一次,存储数值加1。

    (1)清零程序

    在arduino首次使用或者记录时,先清零,保证从0开始记数。具体代码如下:

##转载请注明:@小五义http://www.cnblogs.com/xiaowuyi  QQ群:64770604
#include <EEPROM.h>
int address ;//应用EEPROM地址位为1
int value=0;
void setup()
{

  value==1 ;
   EEPROM.write(address, value);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
}

void loop()
{
  //Serial.print(address);
  Serial.print(value);
  Serial.println();
  delay(1000);
}

  (2)记数程序

    清零后,将此记数程序烧入,以后每次上电,EEPROM的存储值会加1,实现对arduino使用次数的记录。具体代码如下:

##转载请注明:@小五义http://www.cnblogs.com/xiaowuyi  QQ群:64770604
#include <EEPROM.h>
int address ;//应用EEPROM地址位为1
int value;
void setup()
{
  // initialize serial and wait for port to open:
  Serial.begin(9600);
  value = EEPROM.read(address);
  value+=1 ;
   EEPROM.write(address, value);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
}

void loop()
{
  //Serial.print(address);
  Serial.print(value);
  Serial.println();
  delay(1000);
}

  最后,感谢公司李同学的文档整理。

 

目录
相关文章
|
7月前
|
芯片
使用EEPROM断电保存数据
本文介绍了Arduino中EEPROM的使用,EEPROM是一种非易失性存储器,用于在断电后保留数据。Arduino的各种控制器如UNO、duemilanove等内置或可外接EEPROM,容量不同。Arduino库提供了`EEPROM.h`来支持读写操作。示例代码展示了如何写入、读取和清除EEPROM的内容。写入时,通过`EEPROM.write()`函数将模拟输入值存入指定地址;读取时,用`EEPROM.read()`函数获取地址处的值;清除则遍历所有地址并写入0。
165 5
|
7月前
|
存储 编译器 开发工具
EPROM 作为存储器的 8 位单片机
一、基本概述 TX-P01I83 是以 EPROM 作为存储器的 8 位单片机,专为多 IO 产品的应用而设计,例如遥控器、风扇/灯光控制或是 玩具周边等等。采用 CMOS 制程并同时提供客户低成本、高性能等显着优势。TX-P01I83 核心建立在 RISC 精简指 令集架构可以很容易地做编程和控制,共有 55 条指令。除了少数指令需要两个指令时钟,大多数指令都是一个指令时钟能完成,可以让用户轻松地以程序控制完成不同的应用。因此非常适合各种中低记忆容量但又复杂的应用。 在 I/O 的资源方面,TX-P01I83 有 6 根弹性的双向 I/O 脚,每个 I/O 脚都有单独的寄存器控制为输入或
127 0
|
内存技术
单片机(MCU)如何才能不死机之串口Overrun
单片机(MCU)如何才能不死机之串口Overrun
|
存储 芯片 内存技术
Jlink使用技巧之读写SPI Flash存储芯片
Jlink使用技巧之读写SPI Flash存储芯片
1088 0
Jlink使用技巧之读写SPI Flash存储芯片
单片机 (MCU) 如何才能不死机之 IIC 操作
单片机 (MCU) 如何才能不死机之 IIC 操作
|
7月前
|
存储 数据处理 芯片
单片机与存储器
单片机与存储器
69 0
|
传感器 Linux
树莓派从温度传感器DHT11读取数据
这里有个校验位,是为了确保数据传输的准确性的。如果byte1+byte2+byte3+byte4 == byte0,数据传输就是正确的。不过DHT11小数位是不工作的,所以只需要考虑byte2+byte4就行了。
94 0
|
存储 芯片
STM32入门开发: 采用IIC硬件时序读写AT24C08(EEPROM)
STM32入门开发: 采用IIC硬件时序读写AT24C08(EEPROM)
514 0
STM32入门开发: 采用IIC硬件时序读写AT24C08(EEPROM)
嵌入式开发学习之--IIC读写EEPROM(上)
嵌入式开发学习之--IIC读写EEPROM(上)
嵌入式开发学习之--IIC读写EEPROM(上)
|
开发工具 内存技术
ZYNQ-QSPI Flash读写操作(二)
ZYNQ-QSPI Flash读写操作
959 0
ZYNQ-QSPI Flash读写操作(二)