当前位置:首页 > 编程技术 > Arduino > 正文内容

Arduino ESP8266 之看门狗

曾经12个月前 (08-04)Arduino1524
#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()吧!


扫描二维码推送至手机访问。

版权声明:本文由珍惜发布,如需转载请注明出处。

本文链接:https://www.zp68.com/article/52.html

分享给朋友:

“Arduino ESP8266 之看门狗” 的相关文章

Arduino常用字符串处理方法二(char)

char数组基本使用方法char a[ ] = "arduino"可用函数strcpy(p, p1) 复制字符串strncpy(p, p1, n) 复制指定长度字符串strcat(p, p1) 附加字符串strncat(p, p1, n)...

Arduino常用字符串处理方法一(String类)

String类因为String使用更简单一点,所以更推荐使用String,这里也先介绍String基本使用方法String a = "arduino"可用函数charAt()compareTo()concat()c_str()endsWith()eq...

Arduino ESP8266 串口 Serial.begin()用法及代码示例

说明设置串行数据传输的数据速率(以比特/秒(波特)为单位)。为了与串行监视器通信,请确保使用其屏幕右下角菜单中列出的波特率之一。但是,您可以指定其他速率 - 例如,通过引脚 0 和 1 与需要特定波特率的组件进行通信。可选的第二个参数配置数据、奇偶校验和停止位。默认为 8 个数据位,无奇偶校验,1...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。