開發文檔:https://arduino-esp8266.readthedocs.io/en/latest/index.html
源碼:https://github.com/esp8266/Arduino
LED燈:如果不知道板載燈的GPIO腳,看這里
#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()吧!