Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ESP32(Arduino Core):设置功能中的“while(true)”循环_Arduino_Esp32 - Fatal编程技术网

ESP32(Arduino Core):设置功能中的“while(true)”循环

ESP32(Arduino Core):设置功能中的“while(true)”循环,arduino,esp32,Arduino,Esp32,实际上只是一个简短的问题,但我找不到任何相关信息:不使用Arduinos循环函数,而是在setup函数中执行whiletrue循环可以吗 我这么问是因为我喜欢上WiFi配置课程。它从首选项读取WiFi连接数据,如果由于缺少首选项或无法访问配置的AP而无法连接,则应打开接入点,等待通过Web服务器进行配置,然后重新启动 但我不希望执行指针在必须配置WiFi连接时到达实际循环。实际回路仅用于正常操作。因此,我在WiFi配置类中创建了whiletrue循环。这似乎有效,但是否有任何后果,我应该意识到?

实际上只是一个简短的问题,但我找不到任何相关信息:不使用Arduinos循环函数,而是在setup函数中执行whiletrue循环可以吗

我这么问是因为我喜欢上WiFi配置课程。它从首选项读取WiFi连接数据,如果由于缺少首选项或无法访问配置的AP而无法连接,则应打开接入点,等待通过Web服务器进行配置,然后重新启动

但我不希望执行指针在必须配置WiFi连接时到达实际循环。实际回路仅用于正常操作。因此,我在WiFi配置类中创建了whiletrue循环。这似乎有效,但是否有任何后果,我应该意识到?或者基本上可以这样做

注意:我在whiletrue循环中使用延迟调用或屈服调用


谢谢大家!

您的代码。你想做什么就做什么。在设置中等待连接是完全可以的,并且是非常常见的做法

正如您在Arduino的主要实现中所看到的:

<> P>唯一要考虑的是不能使用SerialEngult

每当硬件串行数据中出现新数据时,就会发生SerialEvent 接收。此例程在每次循环运行之间运行


你的密码。你想做什么就做什么。在设置中等待连接是完全可以的,并且是非常常见的做法

正如您在Arduino的主要实现中所看到的:

<> P>唯一要考虑的是不能使用SerialEngult

每当硬件串行数据中出现新数据时,就会发生SerialEvent 接收。此例程在每次循环运行之间运行


谢谢,这对我很有帮助。不幸的是,我使用的是ESP32。但多亏了你的评论,我找到了他们的主要切入点。不幸的是,我想我可能会遇到看门狗定时器:EDIT:Oops的问题。应该已经阅读了整个代码。看起来总是假的,不是吗?这有什么意义?无论如何,非常感谢@timothy3001您指的是loopTaskWDTEnabled总是错误的?我认为这个变量最初设置为false,但可以在设置或循环中更改。是的,这就是我要说的。是的,我也这么认为。我想我刚才也偶然发现了启用Watchdog的函数。谢谢!谢谢,这对我很有帮助。不幸的是,我使用的是ESP32。但多亏了你的评论,我找到了他们的主要切入点。不幸的是,我想我可能会遇到看门狗定时器:EDIT:Oops的问题。应该已经阅读了整个代码。看起来总是假的,不是吗?这有什么意义?无论如何,非常感谢@timothy3001您指的是loopTaskWDTEnabled总是错误的?我认为这个变量最初设置为false,但可以在设置或循环中更改。是的,这就是我要说的。是的,我也这么认为。我想我刚才也偶然发现了启用Watchdog的函数。谢谢!WiFiManager库执行您在问题中描述的操作WiFiManager库执行您在问题中描述的操作
int main(void)
{
    init();

    initVariant();

#if defined(USBCON)
    USBDevice.attach();
#endif

    setup();

    for (;;) {
        loop();
        if (serialEventRun) serialEventRun();
    }

    return 0;
}