본문 바로가기
Study/ESP8266(WIFI),ESP32(BLE,WIFI)

ESP8266 EEPROM 사용하기

by Answer Choi 2017. 2. 14.
반응형


1. EEPROM.begin(size)


EEPROM을 사용하기 위해 EEPROM을 설정하는 메소드입니다.


ESP8266의 EEPROM maximum size는 4096byte인듯합니다.


ESP8266 EEPROM size 참고


따라서 최대 4096byte까지 자신이 사용할만큼의 size로 지정해 주시면 됩니다.


1
EEPROM.begin(4096);
cs


위와 같이 설정하면 4096byte의 EEPROM을 사용하게 됩니다.


번지수는 0~4095번지까지입니다.


2. EEPROM.write(address,data)


EEPROM에 데이터를 쓰는 메소드입니다.


파라메터는 EEPROM 주소와, 데이터부분입니다.


주소는 begin에서 설정한 범위 내에 있어야 합니다.


4096byte를 설정했다면, 0~4095까지의 주소를 사용할 수 있습니다.


주의할점은 주소당 1byte의 데이터 입력이 가능합니다.


예를들어 answer라는 string을 10번지부터 저장하고 싶다면


1
2
3
4
5
6
EEPROM.write(11,"a");
EEPROM.write(12,"n");
EEPROM.write(13,"s");
EEPROM.write(14,"w");
EEPROM.write(15,"e");
EEPROM.write(16,"r");
cs


위 코드처럼 한바이트에 1글자씩 넣어줘야 합니다.


만약 가변의 데이터를 입력할 경우 데이터 사이즈까지 넣어주면 사용하기 편리합니다.


1
EEPROM.write(10,6);
cs


10번지에 11번지부터 저장한 string의 길이정보를 입력했습니다.


3. EEPROM.commit()


EEPROM에 write한 데이터를 최종적으로 실행하는 메소드입니다.


commit까지 해야 최종적으로 EEPROM에 데이터가 저장되게 됩니다.


1
EEPROM.commit();
cs



4. EEPROM.read(address)


EEPROM에 write한 데이터를 최종적으로 실행하는 메소드입니다.


위에서 저장한 answer라는 string을 읽어오겠습니다.


1
2
3
4
5
6
EEPROM.read(10);
EEPROM.read(11);
EEPROM.read(12);
EEPROM.read(13);
EEPROM.read(14);
EEPROM.read(15);
cs


위와 같이 하면 읽어올 수 있습니다.


하지만 가변의 데이터가 될 경우 많이 불편합니다.


이 경우를 대비해 write에서 데이터 사이즈를 저장해 놨습니다.


1
2
3
4
int size=EEPROM.read(10);
for(int i=0;i<size;i++){
    EEPROM.read(11+i);
}
cs


이렇게 하면 데이터의 길이에 상관없이 코드한방으로 작성이 가능합니다.

반응형

인기글