使用esp8266在blinker下eeprom读写不成功-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4329|回复: 8

[已解答] 使用esp8266在blinker下eeprom读写不成功

[复制链接]
发表于 2019-3-20 11:26 | 显示全部楼层 |阅读模式
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
  #include <avr/power.h>
#endif
#define KEYPIN         D3
#define PIN            D2
#define NUMPIXELS      16
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

#define RGB_1 "RGBKey"
void KeyRGB();
BlinkerRGB WS2812(RGB_1);
uint8_t Key_flag=0,Key=0;
uint8_t R=0,G=0,B=0,bright=0;
void ws2812_callback(uint8_t r_value, uint8_t g_value, uint8_t b_value, uint8_t bright_value)
{
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    BLINKER_LOG("R value: ", r_value);
    BLINKER_LOG("G value: ", g_value);
    BLINKER_LOG("B value: ", b_value);
    BLINKER_LOG("Rrightness value: ", bright_value);

     R=r_value;
     G=g_value;
     B=b_value;
     bright=bright_value;
    Key=1;
    pixels.setBrightness(bright_value);

    for(int i = 0; i < NUMPIXELS; i++){
        pixels.setPixelColor(i, r_value, g_value, b_value);
    }
    pixels.show();
    for(int i=2500;i<=2503;i++)
    {
       EEPROM.write(i, 0);//储存更新参数
      }
      delay(5);
    EEPROM.commit();
    EEPROM.write(2500, 100);//储存更新参数
    delay(5);
    EEPROM.write(2501, 100);
    delay(5);
    EEPROM.write(2502, 100);
    delay(5);
    EEPROM.write(2503, 100);
    delay(5);
     EEPROM.commit();
    delay(5);
    R=EEPROM.read(2500);
     G=EEPROM.read(2501);
     B=EEPROM.read(2502);
     bright=EEPROM.read(2503);
     delay(5);
    BLINKER_LOG("R value: ", R);
    BLINKER_LOG("G value: ", G);
    BLINKER_LOG("B value: ", B);
    BLINKER_LOG("Rrightness value: ", bright);
}
void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
     EEPROM.begin(4096);
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, LOW);
    pinMode(KEYPIN, INPUT);
    Blinker.begin(auth);
    //Blinker.attachData(dataRead);
    //Blinker.attachHeartbeat(heartbeat);//设备建立连接后app会立刻发送心跳包, 此后每30s-60会发送一次心跳包
    pixels.begin();

    WS2812.attach(ws2812_callback);

}
void KeyRGB()
{

  if((digitalRead(KEYPIN)==0)&&(Key_flag==0))
  {
      delay(10);
      if((digitalRead(KEYPIN)==0)&&(Key_flag==0))
      {
         Key_flag=1;
         if(Key==1)
         {
          pixels.setBrightness(0);
          for(int i = 0; i < NUMPIXELS; i++){
              pixels.setPixelColor(i, R, G, B);
          }
          pixels.show();
          Key=0;
         }
         else
         {
           Key=1;
           pixels.setBrightness(bright);

          for(int i = 0; i < NUMPIXELS; i++){
              pixels.setPixelColor(i, R, G, B);
          }
          pixels.show();
         }
    }


   }
   if((digitalRead(KEYPIN)!=0)&&(Key_flag==1))
   Key_flag=0;
}
void loop()
{
    Blinker.run();
    KeyRGB();
}
读到的数据全是零,哪位大佬帮忙看一下

发表于 2019-3-20 15:11 | 显示全部楼层
看8266package自带的eeprom例程怎么写的
 楼主| 发表于 2019-3-21 10:17 | 显示全部楼层
三水 发表于 2019-3-20 15:11
看8266package自带的eeprom例程怎么写的

例程可以用
发表于 2019-3-21 16:54 | 显示全部楼层

例程当然可以用。。
你不觉得例程写的和你的不一样?????
 楼主| 发表于 2019-3-22 09:28 | 显示全部楼层
三水 发表于 2019-3-21 16:54
例程当然可以用。。
你不觉得例程写的和你的不一样?????

哪里不一样?我把例程修改的和上边调用的方式一样,也可以储存
发表于 2019-4-11 17:16 | 显示全部楼层
注意初始化之后串口输出一段文字 EEPROM有一段BLINKER是占用的 好像跟你选的地址刚好一样
发表于 2020-3-2 13:12 来自手机 | 显示全部楼层
楼主咋解决的,我也遇到这个问题了,方便说一下嘛
发表于 2020-7-8 01:45 来自手机 | 显示全部楼层
同求解决方案
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 05:38 , Processed in 0.076637 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表