利用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; ...
随机推荐
- oracle 干掉连接
最初由 lutheran 发布 [B]进程超出最大连接数,数据库不能连接,查看v$session里只有80多个会话,但是在v$process里有350个数据库进程,数据库使用的是专用服务器,有大部分的 ...
- C#压缩文件 不压缩路径
我想把 E:\\AA\BB\11.txt 压缩后存入 E:\\AA1\BB1\11.rar 但是当我解压( E:\\AA1\BB1\11.rar)的时候,发现:11.txt 不是在 E:\\AA1\B ...
- Silverlight 4常用StringFormat格式总结
原文地址:http://www.silverlightchina.net/html/tips/2011/0424/7149.html 在Silverlight项目中,经常会根据需求的不同,提供不同的字 ...
- Python中文字符串截取
#-*- coding:utf8 -*- s = u'中文截取' s.decode('utf8')[0:3].encode('utf8') # 结果u'中文截取 延伸阅读: UTF-8中的汉字占用多少 ...
- 100道.net面试题
简述 private. protected. public. internal 修饰符的访问权限. 答 . private : 私有成员, 在类的内部才可以访问. protected : 保护成员,该 ...
- 编译生成.NET Core Framework遇到的问题
前两天在Windows Server 2012上编译生成.NET Core Framework的代码库corefx,遭遇了几个问题,在这篇博文中记录一下. 编译生成操作方法是在命令行(Develope ...
- AutoMapper中的Map和DynamicMap——高手注重细节,思考和总结
近日在做项目的时候,遇到了个怪问题,关于AutoMapper的细节问题,也是不为一般人所关注的. 本人研究AutoMapper也没有多长时间,而且研究的过程中也写了关于AutoMapper的系列基础教 ...
- [MSSQL2008]Spatial Data in SQL Server 2008 - 根据经纬度计算两点间距离
DECLARE @BJ GEOGRAPHY DECLARE @XT GEOGRAPHY /* GET Latitude/Longitude FROM here:http://www.trave ...
- 使用FEST-Swing测试GUI
在Java中最常用的单元测试工具要算JUnit了.FEST-Swing是一个能够与JUnit集成的GUI测试框架.使用FEST-Swing可以更方便的对Swing进行一系列的测试.下面就说 ...
- github心得
心得 : 1:安装:省略 2. 配置 Git 以及上传代码 安装 Git 成功后,如果是 Windows 下,选择 Git Bash ,在命令行中完成一切,可能开始有点麻 烦,不过就那几条命令行,用 ...