blinker库与EEPROM有冲突-Arduino中文社区 - Powered by Discuz! Archiver

18038802360 发表于 2020-12-25 11:42

blinker库与EEPROM有冲突

只要加进了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);

}

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();
}

奈何col 发表于 2020-12-25 13:01

只能说没有冲突,其他用户也正常在用,自己找找原因吧

IotJuZiPi 发表于 2021-1-3 17:16

===========================================================
================== Blinker Timer loaded! ==================
Warning!EEPROM address 1536-2431 is used for Blinker Timer!
============= DON'T USE THESE EEPROM ADDRESS! =============
===========================================================


=======================================================
=========== Blinker Auto Control mode init! ===========
Warning!EEPROM address 0-1279 is used for Auto Control!
=========== DON'T USE THESE EEPROM ADDRESS! ===========
=======================================================

18038802360 发表于 2021-1-6 11:49

是不是ESP32模块就会这样,测试了好久,都会有这个问题,如果不加点灯库就没问题,加了点灯库,只要写了几次就保存不了,只能读。麻烦查看一下,谢了
页: [1]
查看完整版本: blinker库与EEPROM有冲突