解决ESP8266无法连Wifi,波特率乱码问题

时间: 2023-07-29 admin 电脑常识

解决ESP8266无法连Wifi,波特率乱码问题

解决ESP8266无法连Wifi,波特率乱码问题

最近遇到一个奇怪问题,波特率115200,但是实际上却变成了74880

另外Wifi连不上,SmartCoinfig无法使用,测试代码如下

#include <NTPClient.h>
// change next line to use with another board/shield
#include <ESP8266WiFi.h>
//#include <WiFi.h> // for WiFi shield
//#include <WiFi101.h> // for WiFi 101 shield or MKR1000
#include <WiFiUdp.h>

const char *ssid     = "A6000cccc";
const char *password = "Liguiolong";

WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "ntp.aliyun",60*60*8, 30*60*1000);
void SmartConfig()
{
  WiFi.mode(WIFI_STA);
  Serial.println("\r\nWait for Smartconfig...");
  WiFi.beginSmartConfig();
  while (1)
  {
    Serial.print(".");
    delay(500);                   // wait for a second
    if (WiFi.smartConfigDone())
    {
      Serial.println("SmartConfig Success");
      Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
      Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());
      break;
    }
  }
}
bool AutoConfig()
{
    WiFi.begin();
    //如果觉得时间太长可改
    for (int i = 0; i < 20; i++)
    {
        int wstatus = WiFi.status();
        if (wstatus == WL_CONNECTED)
        {
          Serial.println("WIFI SmartConfig Success");
          Serial.printf("SSID:%s", WiFi.SSID().c_str());
          Serial.printf(", PSW:%s\r\n", WiFi.psk().c_str());
          Serial.print("LocalIP:");
          Serial.print(WiFi.localIP());
          Serial.print(" ,GateIP:");
          Serial.println(WiFi.gatewayIP());
          return true;
        }
        else
        {
          Serial.print("WIFI AutoConfig Waiting......");
          Serial.println(wstatus);
          delay(1000);
        }
    }
    Serial.println("WIFI AutoConfig Faild!" );
    return false;
}

void setup(){
  Serial.begin(115200);
  delay(100);
  if (!AutoConfig())
  {
    SmartConfig();
  }

  timeClient.begin();
}

void loop() {
  timeClient.update();

  Serial.println(timeClient.getFormattedTime());

  delay(1000);
}

最终发现,是因为我使用的模块的晶振是26Mhz,而烧录设置为了40Mhz,导致不正常