利用EEPROM实现arduino的断电存储
转载请注明:@小五义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);
}
最后,感谢公司李同学的文档整理。
利用EEPROM实现arduino的断电存储相关推荐
- Arduino 利用EEPROM存储当前引脚状态值
Arduino 利用EEPROM存储当前引脚状态值 实例代码 #include <EEPROM.h>// 定义要访问的字节数 #define EEPROM_SIZE 1// constan ...
- Arduino EEPROM对结构体数据存储和读取
Arduino EEPROM对结构体数据存储和读取 以Arduino UNO开发板为例. 注意:该示例不适用于在ESP8266上使用 EEPROM.put()或者 EEPROM.get()来对数据读写 ...
- 利用PROGISP实现ARDUINO IDE编写的程序的下载以及如何把AVR单片机做成ARDUINO板
首先讲讲题目的由来吧.我做的东西原本是利用ARDUINO MEGA2560及各种模块搭建起来的,程序自然也是用ARDUINO IDE写的.但这种东拼西凑的产品自然不够好,更主要的是,之前ARDUINO ...
- Arduino ESP8266 SPI-FFS存储区域
Arduino ESP8266 SPI-FFS存储区域 首先请原谅我分开来写,文章老是不过审核. 前言 在前面博文关于ESP8266WiFiWebServer的例程中,大家可以发现,博主基本上都是手动 ...
- C++利用双哈希表实现存储机制hash table的算法(附完整源码)
C++利用双哈希表实现存储机制的算法 C++利用双哈希表实现存储机制的算法完整源码(定义,实现,main函数测试) C++利用双哈希表实现存储机制的算法完整源码(定义,实现,main函数测试) #in ...
- STC15系列单片机利用EEPROM统计开机次数
STC15系列单片机利用EEPROM统计开机次数
- 【K210开发板】人脸识别+ SD卡断电存储 --实时按键录取人脸信息并识别
一.人脸识别 1.获取机器码 人脸识别就是在人脸检测的基础上,除了检测人脸的位置外,还可以检测出这个人是谁(需要先对准人按按钮学习). 先到 maixhub 按照说明下载模型, 获得模型smodel, ...
- 利用Bdrive打造个人私有云存储解决方案
Bdrive 一款私有云储存软件,可以自己方便的在 Mac/Windows 下架设服务器,并可以通过 PC.Mac.iOS.Android 跨平台使用.以下简单介绍一下利用Bdrive来完成个人私有云 ...
- 利用DHT22和Arduino测量温湿度并显示在串口和OLED显示屏上
实验结果 温湿度显示在串口: 温湿度显示在OLED屏幕: 实验代码 #include "U8glib.h" #include "DHT.h"U8GLIB_SSD ...
- 利用双向循环链表实现长整数的存储_重学数据结构之链表篇
本文是重新数据结构系列文章的第二篇,本文和大家一起探讨链表的相关知识. 链表是怎么样的数据结构 链表,不需要连续的内存空间,通过"指针(引用)"将一组零散的内存块串联起来的数据结构 ...
最新文章
- 计算机启动和操作系统加载小话
- Facebook 田渊栋:NeurIPS 2020 中了两篇,感觉还算不错
- 温故(2):pass by value
- 网络监控系统安装的4种方式,安防必备
- 架构师一般做到多少岁_软件测试可以做到多大岁数?
- xshell更改背景颜色,解决乱码问题及更改字体及字体大小
- AJAX无刷新搜索,即输即得(未完善…)
- 【Flink】Flink 源码阅读笔记(15)- Flink SQL 整体执行框架
- 深度linux不能联网,Deepin Linux 无法上网
- Halcon PDF文档(hdevelop_users_guide)学习总结之六——Halcon如何导出C++代码
- hdu 2222 Keywords Search ac自己主动机
- Python读取并遍历CSV数据
- IntelliJ IDEA破解和汉化
- python生成中文字符画_用python生成字符画
- Vue源码剖析(一):抽离AST抽象语法树
- 不知道怎么开发VR游戏?Unity5.3官方VR教程重磅登场-系列3 VR中的交互方式
- 谷歌邮箱lmap服务器填什么_解决Gmail的imap收发邮件无法连接服务器的问题
- 教妹学Java(十七):do-while 循环
- Holt-Winters
- 关于“/usr/include/openssl/bn.h 288 error: parse error before BN_ULONG解决方法