|
只要加进了blinker库EEPROM就读取不了,只能写。如果把连接WIFI这代码去掉一切都正常即可写也可读代码如下:
#define BLINKER_WIFI //定义wifi模块
#define BLINKER_MIOT_LIGHT //小爱同学定义为传感器设备
#include <Blinker.h> //包含Blinker头文件
#include<EEPROM.h>//用于读写寄储器临时数据
String kdm="";
//blinker设备的授权码、设备所在环境的wifi、wifi密码
char auth[] = "**********";
char ssid[] = "|********";
char pswd[] = "***************";
void setup() {
Serial.begin(115200);
EEPROM.begin(4000);//激活临时存储器并指定大小
while(!Serial);
Blinker.begin(auth, ssid, pswd);//WIFI连接
BLINKER_DEBUG.stream(Serial);
BLINKER_DEBUG.debugAll();
set_String(0,"3333"); //set_String(写入的长度,开始地址,写入的文本);
set_String(4,"dd55"); //set_String(写入的长度,开始地址,写入的文本);
set_String(2500,"1234"); //set_String(写入的长度,开始地址,写入的文本);
set_String(3200,"5678"); //set_String(写入的长度,开始地址,写入的文本);
}
void loop() {
Blinker.run();
get_String(36,0);
Serial.println("uuuuuuu"+kdm);
get_String(36,2500);
Serial.println("ttttt"+kdm);
get_String(36,2800);
Serial.println("5555555"+kdm);
get_String(36,3000);
Serial.println("sssss"+kdm);
get_String(36,3200);
Serial.println("yyyyy"+kdm);
}
//写入EEPROM数据..............................................................................................................................................
void set_String(int b,String str){
for (int i = 0; i < str.length(); i++){
EEPROM.write(b + i, str[i]);
}
EEPROM.commit();
// EEPROM.end();
}
//读取eeprom //a位是字符串长度,b是起始位..........................................................................................................................
String get_String(int a, int b)
{
String data = "";
//从EEPROM中逐个取出每一位的值,并链接
for (int i = 0; i < a; i++){
data += char(EEPROM.read(b + i));
}
kdm=String(data);
return data;
//EEPROM.commit();
EEPROM.end();
}
|
|