1.引脚序列号必须是常量来定义,否则会无限重启。
#define p2 2
const int Pin2=p2;
pinMode(Pin2, OUTPUT);
2.关于wifi的模式,ap,sta,ap+sta三种模式的初始化必须放在void set_up(){}这个函数里,不能额外搞个自定义函数,不然会无限重启。
错误初始化:
const char *ssid="esp8266ap";
const char *pwd="12345678";
void init_wifi(void){
WiFi.softAP(ssid,pwd);
}
void set_up(void){
Serial.begin(115200);
init_wifi();
}
正确的初始化:
const char *ssid="esp8266ap";
const char *pwd="12345678";
void set_up(void){
Serial.begin(115200);
WiFi.softAP(ssid,pwd);
}
3.wifi 的密码长度要么没有,要么有,有就必须8个字符以上,不然无限重启,程序崩溃复位。
4.esp8266的eeprom库是在flash的最后开辟一个空间,必须这样写,不然也可能发生崩溃重启。
#include <EEPROM.H>
char arr=0;
void set_up(void){
//write
EEPROM.begin(sizeof(arr));
EEPROM.write(0,arr);
EEPROM.commit();
EEPROM.end();
//read
EEPROM.begin(sizeof(arr));
arr=EEPROM.read(0);
EEPROM.commit();
EEPROM.end();
}
//根据eeprom的大小0~4k,最好不要超过4k,超过4k建议使用文件存储
//esp-01s没有eeprom,所以不支持
5.ap模式与sta模式最好不要混用,因为混用容易使得信道混乱。