请问arduino的smartconfig怎么停止-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3288|回复: 3

请问arduino的smartconfig怎么停止

[复制链接]
发表于 2019-1-13 16:42 | 显示全部楼层 |阅读模式
我参照例程写了个smartconfig,要求30秒没有配置就连接默认的wifi,配置smartconfig成功后一切正常,但30秒没有配置就不能连接默认WIFI,也不能配置AP成功了,连WiFi.mode(WIFI_OFF)再打开都不行。我后来想到应该配置失败后要关闭smartconfig,然后在ESP8266WiFiSTA中找到了stopSmartConfig()函数,可使用时提示函数没定义,可函数明明在ESP8266WiFiSTA.cpp中啊。
我的smartconfig配置函数:
boolean smartConfig(void)
{
  unsigned int i = 0;
  WiFi.mode(WIFI_STA);
  Serial.println("\r\nWait for Smartconfig");
  WiFi.beginSmartConfig();
  while (1) {
    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());
      strcpy(eep_data.WIFI_SSID,WiFi.SSID().c_str());
      strcpy(eep_data.WIFI_PWD,WiFi.psk().c_str());
      EEPROM_Write_Data();
      return true;
    }
    delay(1);//延时1ms秒
    if(++i>=30000) {//30s
      Serial.println("SmartConfig Failed");
      //stopSmartConfig();
      return false;
    }
  }
}

boolean Wifi_Set_STA(void)
{
  if((eep_data.WIFI_SSID[0]==0)||(eep_data.WIFI_SSID[0]==0xFF)) {//检查是否已存储了SSID
    if(smartConfig() == false) {//smartcofig配置WIFI STA 失败
      strcpy(eep_data.WIFI_SSID,"TP-LINK_8274");
      strcpy(eep_data.WIFI_PWD,"12345678");
    }
  }
  return Wifi_Config_STA(eep_data.WIFI_SSID, eep_data.WIFI_PWD);
}


 楼主| 发表于 2019-1-14 09:03 | 显示全部楼层
怎么人气这么低,有知道的吗?加入stopSmartConfig()后编译出现“stopSmartConfig was not declared in this scope”
 楼主| 发表于 2019-1-14 09:06 | 显示全部楼层
知道了,应该是加入WiFi.stopSmartConfig();
发表于 2019-1-14 09:07 | 显示全部楼层
调用WiFi.beginSmartConfig()后如果没有配置成功,需要其他联网操作需要退出配网模式,WiFi.stopSmartConfig();
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 14:39 , Processed in 0.069461 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表