首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EEPROM恢复无效

EEPROM恢复无效
EN

Stack Overflow用户
提问于 2017-07-03 15:21:29
回答 1查看 386关注 0票数 0

我正在与Arduino (Nano板)一起做一个DIY项目。我在第一次和第二次阿杜亚诺之间的串行通信上有问题。第一个Arduino将一个字符(字母r)发送给第二个字符,这就是第二个Arduino如何从EEPROM (从0-25字节开始)恢复字节。唯一的问题是,第二个Arduino没有正确发送字节,或者第一个Arduino没有正确地存储它们。

第二个Arduino在EEPROM中具有默认值:

代码语言:javascript
复制
EEPROMWritelong(EEPROM_DISTANCE, 1500);
EEPROMWritelong(EEPROM_DISTANCE_B, 100);
EEPROMWritelong(EEPROM_DISTANCE_C, 1000);
EEPROMWritelong(EEPROM_DISTANCE_D, 400); 
EEPROM.write(EEPROM_MAX_SPEED, 43);
EEPROM.write(EEPROM_TOP_SPEED, 38);
EEPROMWritelong(EEPROM_TRIP_TIME, 1800);
EEPROMWritelong(EEPROM_WOKR_HOURS, 3600);    

循环函数在第二个Arduino中:

代码语言:javascript
复制
if (Serial.available()) {
  incoming = Serial.read();
  if (incoming == 'r') {
    uint8_t address = 0;
    notSend = 255;
    do {
      Serial.write(EEPROM.read(address));
      address++;
      delay(50);
    }
    while (address < 26);
      notSend = 0;
    }
  }

还原第一个Arduino上的字节的代码:

代码语言:javascript
复制
uint8_t byteCount = 0;
Serial.write('r'); // STARTS RESTORING
do {
  if (Serial.available()) {
    if (byteCount >= 0 && byteCount <= 17) EEPROM.write(byteCount, Serial.read());
    // FROM DISTANCE TO TOP SPEED (BYTES 0 - 17)
    else if (byteCount >= 18 && byteCount <= 21) EEPROM.write(byteCount + 8, Serial.read());
    // TRIP TIME
    else EEPROM.write(byteCount + 16, Serial.read());
    // WORK HOURS
    byteCount++;
  }
}
while (byteCount != 26);

在此过程中,我打印了所有字节,而字节根本不匹配。左侧从第二个Arduino向第一个Arduino发送字节,右侧从第二个Arduino接收第一个Arduino上的字节。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-03 16:01:04

也许写作不起作用。每个EEPROM.write()语句(每个这里的文件 )都需要3.3毫秒才能完成。在您的代码中,除了检查Serial.available()的时间之外,我没有看到任何允许写的适当步调的东西。

也要注意,所有AVR芯片的EEPROM支持无限读取,但有一个只有大约100,000周期的写入耐力。因此,您应该明智地经常写信给EEPROM。理想情况下,这是为了持久的设置和值可以经常读取,很少写。把一堆EEPROM写在一个快速循环,你可能会超过EEPROM的耐力非常快。然后EEPROM被毁了,您需要一个新的芯片(和引导加载程序)或一个新的Arduino。我从糟糕的经验中知道这一点。;)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44889162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档