* 선행 조건
- 이 블로그에서 사용하는 분할 코딩 규칙을 알고 있다
사용제품: NodeMCU V2 CP2102/ESP8266/ESP-12E
핀 연결: x
외부 라이브러리:
x
소스 코드:
- 프로젝트 이름: eeprom
더보기
eeprom 탭
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
eeprom_setup();
print_memory();
print_data();
Serial.println();
memory_write();
memory_read();
print_memory();
debug();
}
void loop() {
// put your main code here, to run repeatedly
}
_eeprom 탭
#include <EEPROM.h>
#define memory_address 981
#define data_length_address 1021
char memory[21] = "";
String data("Test");
main 탭
void eeprom_setup(){
EEPROM.begin(4096);
}
void eeprom_write(int address, String data){
for (int i = 0; i < data.length(); i++) EEPROM.write(address + i, data[i]);
}
void eeprom_read(int address, int len_address, char* memory){
uint8_t dataSize = EEPROM.read(len_address);
for (int i = 0; i < dataSize; i++) memory[i] = EEPROM.read(address + i);
//for Serial.println(memory);
memory[dataSize] = '\0';
}
void memory_write(){
EEPROM.write(data_length_address,data.length());
eeprom_write(memory_address,data);
EEPROM.commit();
Serial.println("memory에 data 작성 완료");
}
void memory_read(){
eeprom_read(memory_address, data_length_address, memory);
}
void print_memory(){
Serial.print("Memory: ");
Serial.println(memory);
}
void print_data(){
Serial.print("Data: ");
Serial.println(data);
Serial.print("Data Length: ");
Serial.println(data.length());
}
void debug(){
uint8_t dataSize = EEPROM.read(data_length_address);
Serial.print("stored Data Length: ");
Serial.println(dataSize);
}
시리얼 모니터 및 결과
'아두이노 > NodeMCU' 카테고리의 다른 글
[NodeMCU] 웹 서버 테스트 (2) | 2020.07.24 |
---|---|
[NodeMCU] WiFi 연결 테스트 (0) | 2020.07.24 |
[NodeMCU] DHT11 측정 테스트 (0) | 2020.07.24 |
[NodeMCU] 아두이노 IDE 설정 (0) | 2020.07.24 |