看了一下Arduino的EEPROM库,还是很简单的。功能比较全,针对最常用的读写功能我做一下测试。
以下是说明文档中的一部分:
我用的Arduino是328PB,因此应该是1024字节的EEPROM。看着这个寿命,应该是FLASH模拟的EEPROM了。
针对读写功能测试,我自己设计的测试程序主要功能:根据一个不断变化的计数器的奇偶性决定是否输出EEPROM的内容,而这个计数器变化后会存储EEPROM。
设计的代码如下:
#include <EEPROM.h>
static unsigned char read_finished_flg = 0;
unsigned char data_eeprom;
void setup()
{
// put your setup code here, to run once:
int i = 0;
Serial.begin(9600);
Serial.println("test start...");
for(i = 0; i < 256; i++)
{
EEPROM.write(i,i);
}
Serial.println("eeprom write finished.");
read_finished_flg = EEPROM.read(256);
Serial.println(read_finished_flg);
if(read_finished_flg % 2 == 1)
{
for(i = 0; i < 256; i++)
{
data_eeprom = EEPROM.read(i);
Serial.println(data_eeprom);
delay(10);
}
}
if(read_finished_flg < 255)
{
read_finished_flg += 1;
}
else
{
read_finished_flg = 0;
}
EEPROM.write(256,read_finished_flg);
}
void loop()
{
// put your main code here, to run repeatedly:
}
每次测试,只需要复位一下。
这个是运行了3次之后的效果,接下来再次复位能够看到写完EEPROM之后输出的计数器的数值发生变化。具体如下:
第4次,由于奇偶性,这次没有输出。再次复位:
看得出EEPROM的功能OK。