在esp8266启动时,它会尝试连接到接入点。
uint8_t UDP_Start(char* ssid, char* pass, uint16_t loc_port)
{
uint32_t
timeout = 0;
if (WiFi.status() != WL_CONNECTED)
{
rt_parameters.wifi_mode = WIFI_STA;
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, pass);
if (sys_parameters.debug)
Serial.println("Waiting for connection");
while (WiFi.status() != WL_CONNECTED)
{
delay(DELAY_TICK);
if (sys_parameters.debug)
Serial.print('.');
timeout++;
if (timeout >= sys_parameters.ap_con_timeout)
{
if (sys_parameters.debug)
Serial.println();
return UDP_WIFI_ERR;
}
}
Serial.print("nConnection time (ms) ");
Serial.println(DELAY_TICK * timeout);
}
rt_parameters.wifi_status = WiFi.status();
IPAddress ip_addr = WiFi.localIP();
memcpy(sys_parameters.loc_ip, ip_addr, 4);
if (sys_parameters.debug)
{
Serial.print("Connected! IP address: ");
Serial.println(ip_addr);
Serial.printf("UDP server on port %dn", loc_port);
}
if (udp.begin(loc_port) == 0)
return UDP_CONNECT_ERR;
return UDP_OK;
}
有时需要合理的时间 - 6-10 秒。有时需要 30-60 秒。有时它会在超时状态超时
wl_connect_failed
wl_no_ssid_avail
当它wl_no_ssid_avail时,我执行 WiFi.scanNetworks() 并查看我的接入点。
我怎样才能改善这种情况?