ESP32 Arduino教程:软件重置-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4022|回复: 0

ESP32 Arduino教程:软件重置

[复制链接]
发表于 2019-6-3 14:59 | 显示全部楼层 |阅读模式
本帖最后由 dfrobot 于 2019-5-30 21:53 编辑

简介
该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确实被重置,程序从一开始就再次运行。


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


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

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



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 08:26 , Processed in 0.071738 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表