现在将分享如何使用 bpibit 板子上的 EEPROM 。利用EEPROM 对数据进行储存于读取。
EEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。EEPROM 可以在不使用文件和文件系统的情况下用来固化一些数据,常见的比如用来保存SSID或是Password,保存用户名及密码,保存用户设置等数据,可以实现更复杂的应用。
默认的 EEPROM 对象大小为4096字节,用户操作地址为0~4095。
配套介绍
编写工具: vscode + platformIO 安装教程
硬件: bpibit
主要函数
EEPROM.begin(size)
:开启 EEPROM
参数 | 功能 |
---|---|
size |
size 为需要读写的数据字节最大地址+1,取值范围 1~4096 |
EEPROM.write(addr, data)
:向存储空间写入数据
参数 | 功能 |
---|---|
addr |
存储空间的地址 |
data |
实际写入数据 |
-
EEPROM.commit()
: 每次写入地址后都需要调用这个函数 -
EEPROM.read(addr)
: 从存储空间读取数据
参数 | 功能 |
---|---|
addr |
存储空间的地址 |
主要示例
/*
该代码向 EEPROM 写入数据,然后再从 EEPROM 中读出来
*/
#include <EEPROM.h>
void setup()
{
Serial.begin(9600);
Serial.println("Start write");
EEPROM.begin(4096); //申请操作到地址4095(比如你只需要读写地址为100上的一个字节,该处也需输入参数101)
for(int addr = 0; addr<4096; addr++)
{
int data = addr%256; //在该代码中等同于int data = addr;因为下面write方法是以字节为存储单位的
EEPROM.write(addr, data); //写数据
}
EEPROM.commit(); //保存更改的数据。 在这里也可以用 EEPROM.end()
Serial.println("End write");
for(int addr = 0; addr<4096; addr++)
{
int data = EEPROM.read(addr); //读数据
Serial.print(data);
Serial.print(" ");
delay(1);
if((addr+1)%256 == 0) //每读取256字节数据换行
{
Serial.println("");
}
}
Serial.println("End read");
}
void loop()
{
}
打开 串口助手 。记得将 串口助手 的波特率调至 9600 。然后按 bpibit 板子上的复位按钮即可将从 串口助手 上接收到完整的信息。