Arduino ESP8266 之看门狗
#define LED_PIN D4
void setup() {
//初始化串口
Serial.begin(9600);
// put your setup code here, to run once:
// 设置管脚为输出模式
pinMode(LED_PIN,OUTPUT);
// 初始化时设置为高电平熄灭LED
digitalWrite(LED_PIN, HIGH);
}
void loop() {
// put your main code here, to run repeatedly:
// 点亮LED
if(Serial.available())
{
char ch= Serial.read();
Serial.print(ch);
if(ch=='a'){
digitalWrite(LED_PIN, LOW);
}else if(ch=='b'){
// 熄灭LED
digitalWrite(LED_PIN, HIGH);
}else{
}
}
}看门狗:
参考:https://www.arduino.cn/thread-84125-1-1.html
https://www.arduino.cn/thread-74482-1-1.html
ESP8266的看门狗,默认就是开启的,ESP.wdtEnable(uint32_t time_ms),ESP.wdtDisable(), ESP.wdtFeed()
默认就是开启的
ESP.wdtEnable(uint32_t time_ms) //ESP.wdtEnable(WDTO_4S); //打开看门狗 4秒重启
// 0=15(16)ms, 1=30(32)ms,2=60(64)ms,3=120(128)ms,4=250ms,5=500ms
// 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec
0、WDTO_15MS: 看门狗定时器15ms超时
1、WDTO_30MS: 看门狗定时器30ms超时
2、WDTO_60MS:看门狗定时器60ms超时
3、WDTO_120MS: 看门狗定时器120ms超时
4、WDTO_250MS: 看门狗定时器250ms超时
5、WDTO_500MS: 看门狗定时器500ms超时
6、WDTO_1S: 看门狗定时器1S超时
7、WDTO_2S: 看门狗定时器2S超时
8、WDTO_4S: 看门狗定时器4S超时
9、WDTO_8S: 看门狗定时器8S超时
ESP.wdtDisable() //关闭看门狗
ESP.wdtFeed( ) //喂狗
要是想复位 直接 ESP.restart() 复位参考
ESP8266有两种重启方法,分别为:ESP.reset()和ESP.restart(),很多人代码中都用ESP.reset()重启,但是通常情况下使用ESP.restart()会更好,
这两者区别如下:
ESP.reset()是一个硬复位,这种重启方式可能会使一些寄存器回归到原始状态,即丢失寄存器数据,这会导致重启后的程序出现问题,它或多或少像计算机上的复位按钮。
ESP.restart()是通过向ESP8266的SDK发送信号重启,而不是简单粗暴的复位,所以它是一个更‘软’的重启方式。
所以,把你代码中的ESP.reset()换成ESP.restart()吧!




