ESP32 Arduino教程:软件重置

2019-05-071.6万
AI 快速预览详细 收起
该教程介绍了如何使用Arduino核心在ESP32开发板上执行软件重置。通过简单的代码示例,展示了如何通过调用ESP对象上的restart方法实现设备的重启。首先,初始化串口通信并打印一条消息,然后延迟10秒后调用ESP.restart()方法进行重启。此方法无需额外的库include,非常方便实用。
简介
该esp32 Arduino教程旨在解释如何使用Arduino核心在ESP32开发板上执行软件重置。
ESP32教程的测试是使用集成在ESP32开发板中的DFRobot的ESP-WROOM-32设备进行的。


Arduino代码
我们将通过打开串行连接启动我们的安装功能代码,这样我们就能够输出一条消息,指示整个程序已启动。
[mw_shl_code=applescript,true]
Serial.begin(115200);[/mw_shl_code]

然后我们将所提消息打印到串口,这样我们就可以知道ESP32何时重新启动,并且从一开始就再次运行。

[mw_shl_code=applescript,true]Serial.println("Restarting in 10 seconds");[/mw_shl_code]

之后,我们将在实际重启设备前保留10秒的微小延迟。为此,我们只需调用延迟函数,该函数接收等待的微秒数作为输入。

[mw_shl_code=applescript,true]delay(10000);[/mw_shl_code]

最后,我们将通过调用ESP对象上的restart方法重新启动ESP32。此方法不接收任何参数并返回void。
此ESP对象是EspClass类的外部变量,需在此处进行定义。您可以在上一个链接中查看此对象公开的一些其他有趣的系统函数。
请注意,我们不需要执行任何库include来访问此对象,默认情况下该对象可用。

[mw_shl_code=applescript,true]ESP.restart();[/mw_shl_code]


最终完整Arduino代码如下所示。

[mw_shl_code=applescript,true]void setup() {
  Serial.begin(115200);
  Serial.println("Restarting in 10 seconds");
  delay(10000);
  ESP.restart();
}
void loop() {}
[/mw_shl_code]

代码测试
如需测试代码,只需编译它并将其上传到[url=https://www.dfrobot.com/product-1559.html]ESP32[/url]板即可。然后,打开Arduino IDE串行监视器。
您应该会得到一个类似于图1的输出,它将多次显示程序的初始串行打印输出,这意味着ESP32确实被重置,程序从一开始就再次运行。

ESP32 Arduino教程:软件重置图1

图1  - 通过软件重启ESP32开发板。


注:本文作者是Nuno Santos,他是一位和蔼可亲的电子和计算机工程师,住在葡萄牙里斯本 (Lisbon)。
他写了200多篇有关ESP32、ESP8266的有用的教程和项目。

查看更多ESP32/ESP8266教程和项目:
中文版教程 : ESP32教程 合集
英文版教程 : ESP32 tutorial 合集



创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
诺威
诺威
HAO6666666666666666666666
- 没有更多了 -