利用EEPROM实现arduino的断电存储
2015-11-05 19:45
447 查看
[b]转载请注明:@小五义http://www.cnblogs.com/xiaowuyi QQ群:64770604[/b]
一、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开始记数。具体代码如下:
(2)记数程序
清零后,将此记数程序烧入,以后每次上电,EEPROM的存储值会加1,实现对arduino使用次数的记录。具体代码如下:
最后,感谢公司李同学的文档整理。
一、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); }
最后,感谢公司李同学的文档整理。
相关文章推荐
- 转:超实用的IOS 9人机界面指南(1):UI设计基础 (腾讯力作)
- RequestMaping url带参数及参数带“."的解决办法
- UIPickerView
- jsp小结14 - 9个内置对象07 request
- 再探oVirt-配置一个2节点的ovirt环境
- A - Number Sequence(矩阵快速幂或者找周期)
- UEditor图片上传
- 有关easyui打印中应用插件Lodop,非常好用
- [note]Why I haven’t quit my corporate job (yet)
- C# this.invoke()作用 多线程操作UI
- 3.30uitableview的知识点
- UIButton 如何设置为圆角矩形
- UIViewController中edgesForExtendedLayout属性的画面切断现象
- iOS开发--UIDatePicker
- UITextField (文本输入框基本设置和代理)
- 黑马程序员——JAVA基础----GUI
- IOS学习路线:IOS UI状态保持与恢复
- Qt数据库 QSqlQueryModel实例操作
- BuildConfig 中 DEBUG的作用
- [hadoop2.7.1]I/O之“泥坯块”SequenceFile前序知识