环境
- mcu:arduino uno
-
wifi模块:esp8266
-
esp8266版本:安可信 sdk0.9.5
我在使用ESP8266的开源库https://github.com/itead/ITEADLIB_Arduino_WeeESP8266.时,使用库中的程序连接wifi时遇到无法连接AP的问题。库提供的代码如下:
#include "ESP8266.h"
#define SSID "abcdef"
#define PASSWORD "123456789"
ESP8266 wifi(Serial);
void setup(void)
{
Serial.begin(115200);
Serial.print("setup begin\r\n");
Serial.print("FW Version: ");
Serial.println(wifi.getVersion().c_str());
if (wifi.setOprToStation()) {
Serial.print("to station ok\r\n");
} else {
Serial.print("to station err\r\n");
}
if (wifi.joinAP(SSID, PASSWORD)) {
Serial.print("Join AP success\r\n");
Serial.print("IP: ");
Serial.println(wifi.getLocalIP().c_str());
} else {
Serial.print("Join AP failure\r\n");
}
Serial.print("setup end\r\n");
}
void loop(void)
{
}
程序语法正确、逻辑正确,且编译成功。我怀疑是不是库本身逻辑有问题,于是把库当做黑箱,按照思维定势给程序加了APLIST命令,如下。成功,连接到AP。然而,APLIST命令会引起较大的内存消耗,一旦使用就出现:busy.p...
如果mcu没有富裕的内存,我建议别把APLIST命令放在loop里。
\#include <ESP8266.h>
#include <doxygen.h>
#define SSID "iotWiFi"
#define PASSWORD "20159104"
ESP8266 wifi(Serial);
void setup(void)
{
Serial.begin(115200);
Serial.print("setup begin\r\n");
Serial.print("FW Version: ");
Serial.println(wifi.getVersion().c_str());
if (wifi.setOprToStationSoftAP()) {
Serial.print("to station and softap ok\r\n");
}
else {
Serial.print("to station and softap err\r\n");
}
Serial.println(wifi.getAPList().c_str());
delay(150);
if (wifi.joinAP(SSID, PASSWORD)) {
Serial.print("Join AP success\r\n");
Serial.print("IP: ");
Serial.println(wifi.getLocalIP().c_str());
}
else {
Serial.print("Join AP failure\r\n");
}
Serial.print("setup end\r\n");
}
void loop(void)
{
}
文章评论