analogWrite(4, 1024) 是否可能导致 ESP8266 挂起?

Is it possible that analogWrite(4, 1024) could cause hang of the ESP8266?

不知是否调用这样的线路:

analogWrite(4, 1024);

会导致 ESP8266 挂起吗?

我问是因为我的 ESP8266 在正常工作大约一周后挂起。这很难调试,但我设法将问题缩小到使用 analogWrite() 的函数。我分析了一下,我发现值的范围是 0 到 1024,而不是 0 到 255,对吗?

这是 Arduino 的 analogWrite() 函数:

extern "C" void analogWrite(uint8_t pin, int value) {
  if (pin >= ESP_PINS_OFFSET) {
    __analogWrite(pin - ESP_PINS_OFFSET, value);
  }
  else {
    wifio::analogWrite(pin, value);
  }
}

它调用了一些我不了解的 SDK 命令,我不确定是否可以验证它们在做什么?

使用允许范围之外的值调用 analogWrite() 可能会导致未定义的行为;在处理其他任何事情之前,您绝对应该更正此问题:

Syntax for the ESP8266: analogWrite(pin, valueParameters pin: the pin to write to. value: the duty cycle: between 0 (always off) and 1023 (always on).

忘记其他调试任务,直到您更正此问题。