ESP32 (Arduino Core): "while(true)" 设置函数循环
ESP32 (Arduino Core): "while(true)" loop in setup function
实际上只是一个简短的问题,但我找不到任何相关信息:不使用 Arduinos loop
函数是否可以,而是在 [=13] 中执行一个 while(true)
循环=]函数?
我问是因为我喜欢 class 处理 WiFi 配置。它从首选项中读取 WiFi 连接数据,如果它无法连接(由于缺少首选项或因为配置的 AP 不可访问),它应该打开一个接入点,等待配置(通过网络服务器)然后重新启动。
但是当必须配置 WiFi 连接时,我不希望执行指针到达实际的 loop
。实际的loop
只是为了正常运行。因此,我在该 WiFi 配置 class 中创建了 while(true)
循环。它似乎有效,但我是否应该注意任何后果?或者基本上可以这样做吗?
注意:我确实在 while(true)
循环中使用 delay()
调用(或 yield()
调用)。
谢谢!
你的代码。你想做什么,就可以做什么。在 setup() 中等待连接是绝对可以的,也是很常见的做法。
正如您在 Arduino 的 main() 实现中所见:https://github.com/arduino/ArduinoCore-avr/blob/master/cores/arduino/main.cpp
int main(void)
{
init();
initVariant();
#if defined(USBCON)
USBDevice.attach();
#endif
setup();
for (;;) {
loop();
if (serialEventRun) serialEventRun();
}
return 0;
}
唯一要考虑的是不能使用SerialEvent
https://www.arduino.cc/en/Tutorial/SerialEvent
SerialEvent occurs whenever a new data comes in the hardware serial
RX. This routine is run between each time loop() runs
实际上只是一个简短的问题,但我找不到任何相关信息:不使用 Arduinos loop
函数是否可以,而是在 [=13] 中执行一个 while(true)
循环=]函数?
我问是因为我喜欢 class 处理 WiFi 配置。它从首选项中读取 WiFi 连接数据,如果它无法连接(由于缺少首选项或因为配置的 AP 不可访问),它应该打开一个接入点,等待配置(通过网络服务器)然后重新启动。
但是当必须配置 WiFi 连接时,我不希望执行指针到达实际的 loop
。实际的loop
只是为了正常运行。因此,我在该 WiFi 配置 class 中创建了 while(true)
循环。它似乎有效,但我是否应该注意任何后果?或者基本上可以这样做吗?
注意:我确实在 while(true)
循环中使用 delay()
调用(或 yield()
调用)。
谢谢!
你的代码。你想做什么,就可以做什么。在 setup() 中等待连接是绝对可以的,也是很常见的做法。
正如您在 Arduino 的 main() 实现中所见:https://github.com/arduino/ArduinoCore-avr/blob/master/cores/arduino/main.cpp
int main(void)
{
init();
initVariant();
#if defined(USBCON)
USBDevice.attach();
#endif
setup();
for (;;) {
loop();
if (serialEventRun) serialEventRun();
}
return 0;
}
唯一要考虑的是不能使用SerialEvent
https://www.arduino.cc/en/Tutorial/SerialEvent
SerialEvent occurs whenever a new data comes in the hardware serial RX. This routine is run between each time loop() runs