1
我目前正在嘗試編寫一個函數來將數據存儲到我的Arduino上的EEPROM中。到目前爲止,我只寫了一個指定的字符串,然後在程序第一次運行時再讀回它。我試圖將字符串的長度存儲爲第一個字節,我的代碼如下所示;將數據寫入Arduino的板載EEPROM
#include <EEPROM.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);
char string[] = "Test";
void setup() {
lcd.begin(16, 2);
for (int i = 1; i <= EEPROM.read(0); i++){ // Here is my error
lcd.write(EEPROM.read(i));
}
delay(5000);
EEPROM_write(string);
}
void loop() {
}
void EEPROM_write(char data[])
{
lcd.clear();
int length = sizeof(data); // I think my problem originates here!
for (int i = 0; i <= length + 2; i++){
if (i == 0){
EEPROM.write(i, length); // Am I storing the length correctly?
lcd.write(length);
}
else{
byte character = data[i - 1];
EEPROM.write(i, character);
lcd.write(character);
}
}
}
我遇到的問題是當我讀取EEPROM的第一個字節時,我得到了應有的長度值。但是,循環只運行三次。我在我的代碼中評論了一些興趣點,但錯誤在哪裏?
非常感謝,我正在構建一個簡單的系統,它將存儲一組數值。這是一個很好的開始:)再次,謝謝 – 2013-03-12 19:20:40