利用EEPROM实现arduino的断电存储
转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群: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的断电存储的更多相关文章
- 转载:利用UDEV服务解决RAC ASM存储设备名
利用UDEV服务解决RAC ASM存储设备名 本文转载自Maclean Liu :http://www.askmaclean.com/archives/utilize-udev-resolve-11g ...
- 转:利用UDEV服务解决RAC ASM存储设备名
利用UDEV服务解决RAC ASM存储设备名 好文转载,链接:http://www.askmaclean.com/archives/utilize-udev-resolve-11gr2-rac-asm ...
- EEPROM类库的使用---断电不丢失的存储芯片
EEPROM(Electrically Erasable Programmable Read-Only Memory),电可擦可编程只读存储器——一种掉电后数据不丢失的存储芯片. EEPROM可以在不 ...
- 利用 ProtoThreads实现Arduino多线程处理(1)
转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604 这几天和群里小V同学讨论一个项目时,偶然发现了 ProtoThreads,简称PT,用其来实 ...
- 利用备份技术获取apk本地存储数据
即使设备没有root,我们也可以通过物理访问设备来获取应用程序的数据,我们还可以通过此方法改变一个应用程序的数据.如果一个应用程序将数据存储在客户端, 使用简单的密码或pin检查,攻击者有可能使用这种 ...
- 解析如何利用ElasticSearch和Redis检索和存储十亿信息
如果从企业应用的生存率来看,选择企业团队信息作为主要业务,HipChat的起点绝非主流:但是如果从赚钱的角度上看,企业市场的高收益确实值得任何公司追逐,这也正是像JIRA和Confluence这样的智 ...
- 利用nfs-client-provisioner动态提供Kubernetes后端存储卷
原文:https://www.kubernetes.org.cn/3894.html 利用NFS client provisioner动态提供Kubernetes后端存储卷 本文翻译自nfs-clie ...
- 利用 ProtoThreads实现Arduino多线程处理(2)
转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604 感谢小V分享给大家的博文. 我在做产品设计的课题的时候,小五义推荐我使用Protothrea ...
- 利用Windbg深入理解变量的存储模型
下面的是一个简单的测试程序,基本包括了所有的变量类型,包括静态的,常量的,全局的,本地的,还有new出来的 #include <iostream> using namespace std; ...
随机推荐
- Jfinal 使用 JsonKit 转换不了问题
使用bootStrap+jfinal开发一个管理系统,遇到了前台ajax获取数据,使用了jfinal的Jsonkit,将一个继承了model的vo进行转换,却一直没有将vo的属性值转换为json格式, ...
- shell脚本学习
1.注释 如果使用bash,则在脚本文件头注释:#/bin/bash2.将脚本文件加上可读与执行权限,就可以使用./shell.sh来执行,也可以使用sh shell.sh的方式来直接执行,sh是ba ...
- UWP深入学习三:依赖属性、附加属性和数据绑定
Dependency properties overview Custom dependency properties Attached properties overview Custom atta ...
- 2748: [HAOI2012]音量调节
Description 一个吉他手准备参加一场演出.他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都要改变一次音量.在演出开始之前,他已经做好了一个列表,里面写着在每首歌开始之前他想要改 ...
- 数论 : 模运算法则(poj 1152)
题目:An Easy Problem! 题意:求给出数的最小进制. 思路:暴力WA: discuss中的idea: 给出数ABCD,若存在n 满足 (A* n^3 +B*n^2+C*n^1+D*n^0 ...
- vim 空格 制表符
set tabstop=4 设定tab宽度为4个字符set shiftwidth=4 设定自动缩进为4个字符set expandtab 用space替代tab的输入 ...
- 第十一章:Android数据存储(上)
数据和程序是应用构成的两个核心要素,数据存储永远是应用开发中最重要的主题之一,也是开发平台必须提供的基础功能.不光是在Android平台上,在其他的平台上,数据的存储永远是不可缺少的一块.Androi ...
- 2014年团队博客TOP10
2014年通过这个团队博客,葡萄城共输出了51篇原创技术博客(含翻译),总阅读超过9万人次,约有1万人次是通过RSS订阅方式阅读,总评论超过500人次. 这里我们通过阅读排序,选出2014年团队博客T ...
- 无线客户端框架设计(3):基类的设计(iOS篇)
本文代码:YoungHeart-Chapter-03.zip 没有基类的App都不是好App. 因为iOS使用的是mvc模式的开发模式,所以,业务逻辑基本都在每个页面相应的ViewController ...
- 转:nginx基础概念(request)
这节我们讲request,在nginx中我们指的是http请求,具体到nginx中的数据结构是ngx_http_request_t.ngx_http_request_t是对一个http请求的封装. 我 ...