代码
#include <EEPROM.h>
#ifndef _SMART_CONFIG_
#define _SMART_CONFIG_
#define EEPROM_START 1024
struct ConfigPara {
char ssid[64];
char pwd[64];
char topic[64];
};
/*
保存参数到eeprom
*/
void saveConfig(ConfigPara para) {
EEPROM.begin(EEPROM_START);
uint8_t *p = (uint8_t*)(¶);
for (int i = 0; i < sizeof(para); i++) {
EEPROM.write(i, *(p + i));
}
EEPROM.commit();
}
/*
获取wifi账号密码信息
*/
ConfigPara loadConfigs() {
// 为变量请求内存
ConfigPara para;
EEPROM.begin(EEPROM_START);
uint8_t *p = (uint8_t*)(¶);
for (int i = 0; i < sizeof(para); i++) {
*(p + i) = EEPROM.read(i);
}
EEPROM.commit();
return para;
}
/**
清空wifi账号和密码
*/
void clearConfig() {
EEPROM.begin(EEPROM_START);
// 这里为啥是96 ,因为在结构体声明的长度之和就是96
for (int i = 0; i < sizeof(ConfigPara); i++) {
EEPROM.write(i, 0);
}
EEPROM.commit();
}
#endif