1. EEPROM.begin(size)
EEPROM을 사용하기 위해 EEPROM을 설정하는 메소드입니다.
ESP8266의 EEPROM maximum size는 4096byte인듯합니다.
따라서 최대 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 |
이렇게 하면 데이터의 길이에 상관없이 코드한방으로 작성이 가능합니다.
'Study > ESP8266(WIFI),ESP32(BLE,WIFI)' 카테고리의 다른 글
ESP8266 mac Address 가져오기 (0) | 2018.01.09 |
---|---|
ARDUINO PHP POST로 통신하기 (0) | 2017.11.08 |
고정IP(Static IP, Fixed IP)로 사용하기 (0) | 2017.01.18 |
cannot convert 'volatile uint32_t* {aka volatile unsigned int*}' to 'volatile uint8_t* {aka volatile unsigned char*}' in initialization #define portInputRegister(port) ((volatile uint32_t*) &GPI) (2) | 2016.12.19 |
Wemos D1(with ESP8266) pinmap (0) | 2016.12.05 |