ESP32 WiFi 初始化中断 GPIO 模拟读取

ESP32 WiFi initialization disrupting GPIO analog reading

我正在通过 Arduino IDE 对 ESP32 进行编程,我在使用 Arduino 的 WiFi 库时遇到了一个奇怪的问题。当我连接到我的 WiFi 网络时,它会强制读取特定引脚(引脚 2)到 4095。随着连接到 WiFi 的代码行被注释掉,我在连接到该引脚的传感器上得到了正确的读数,但是它包括它卡在 4095。当微控制器与电路的其余部分断开连接时也会发生这种情况。注释掉该行后,我得到一个白噪声读数,但包含该行的 4095 读数。这是代码:

//Libraries 
#include <WiFi.h>

//Wi-Fi Connection Parameters
const char* ssid     = "REMOVED";
const char* password = "REMOVED";

const int sensePin = 2;

//Initialize WiFi Server
WiFiServer server(80);

void setup() {
  pinMode(sensePin, INPUT);
  int senseOut = 0;

  Serial.begin(115200);

  // Connect to WiFi network
  WiFi.begin(ssid, password); //THIS LINE CAUSES 4095 READING
}

void loop() {
  TestSensor();
}

void TestSensor()
{
  for (int i = 0; i < 100; i++)
  {
  senseOut = analogRead(sensePin);
  Serial.println(senseOut);
  delay(100);
  }
}

白噪声读数示例:

1251
1263
1275
1254
1237
1200
1149
1095
1040
976
928
868
835
805
806
820
778
752
819
1002
1516
1675
1687
1693
1659
1674
1702
1713
1727

知道是什么原因造成的吗?谢谢。

您需要使用另一个模拟输入。

这些引脚在使用 WiFi 时不支持模拟输入: 00, 02, 04, 12, 13、 14, 15, 25, 26,

这些是: 32, 33、 34, 35, 36, 39, 使用最后 6 个中的一个连接您的传感器。