我在Arduino上使用EEPROM来存储一些大型常量数组。我注意到EEPROM.read(地址)和EEPROM [地址]都适用于我的阅读。但是关于EEPROM [地址]方法的文献很少。我也偶尔会遇到使用该方法的内存崩溃。
EEPROM.read(地址)长期未经过全面测试。编译时确实需要更多的存储空间。它在幕后的行为更安全吗?
答案 0 :(得分:0)
EEPROM [地址]将为您提供对eeprom单元格的引用,而EEPROM.read(地址)将为您提供来自该单元格的无符号字符值。
在这两种情况下,您都应确保您的地址有效。
确保地址为> = 0且< EEPROM.length()。
答案 1 :(得分:0)
EEPROM.read(adress) - >读取EEPROM(地址从0开始)并将其值作为unsigned char发送。
EEPROM [地址] - >参考地址
的eeprom单元格
为了减小你的大小你可以使用avr / eeprom库,它有各种功能和宏用于eeprom使用。这是一个可靠的库,经过了充分测试。 avr/eeprom.h
#include <EEPROM.h>
#include <avr/eeprom.h>
void Eepromclr();
void setup() {
Serial.begin(9600);
eeprom_write_byte((void*)0,12);
int x = eeprom_read_byte((void*)0);\
Serial.println(x);
Eepromclr();
eeprom_update_byte((void*)0,6);
int y = eeprom_read_byte((void*)0);
Serial.println(y);
}
void loop() {
}
void Eepromclr() {
for (int i = 0 ; i < EEPROM.length() ; i++) {
EEPROM.write(i, 0);
}
Serial.println("Eeprom is cleared");
}