我正在使用带有 SOFTAP-Mode 的ESP8266。
与我的安卓
手机连接和使用网络服务器可以毫无问题。此外,kolleagues没有报告任何问题。
我也想与我的笔记本连接,但它是不可能的,或者换句话说:在很短的时间内:它永久加入并离开 AP。
请帮助我或提供任何建议。
我正在使用 SDK 1.3 并按照我记录的 LOG 进行操作:
========================================================
加 1
援助 1
站:5c:c5:d4:de:4c:ac连接,AID = 1
站:5c:c5:d4:de:4c:交流休假,AID = 1
rm 1
. 60
. 61
加 1
援助 1
站:5c:c5:d4:de:4c:ac连接,AID = 1
站:5c:c5:d4:de:4c:交流休假,AID = 1
rm 1
========================================================
我也尝试了 SDK 1.1 和 SDK 1.2,但没有成功。
这里使用的初始化序列:
====================================================
void dhcps_lease(void)
{
结构体 dhcps_lease dhcp_lease;
IP4_ADDR(&dhcp_lease.start_ip, 10, 10, 10, 20);
IP4_ADDR(&dhcp_lease.end_ip, 10, 10, 10, 100);
wifi_softap_set_dhcps_lease(&dhcp_lease);
}
主要例程。初始化 stdout、I/O 和 Web 服务器,我们就完成了。
void user_init(void)
{
ioObj=&ioObj_sta
tic;
结构体 softap_config apConfig;
结构体 ip_info ipinfo;
夏尔·西德[33];
字符密码[33];
查尔·麦克地址[17];
字符信息[150];
int i;
struct SettingsData *设置;
system_timer_reinit();
ets_wdt_disable();
stdoutinit();
for(i=0;i<1000;i++) os_delay_us(1000);
ets_wdt_enable();
os_printf("Startingrn");
settings=getsettingsdataptr();
if (1==1 || readSettings()==false)
{
os_printf("Read Failedrn");
os_sprintf(settings->password,"%s","esptemplate");
os_sprintf(settings->ssid,"%s","esptemplate");
os_sprintf(settings->configstring,"");
for(i=0; i<40; i++) settings->params[i]=0L;
writesettings();
}
if( wifi_get_phy_mode() != PHY_MODE_11G )
{
os_printf("*** Setting PHY_MODE ...rn");
wifi_set_phy_mode( PHY_MODE_11B );
}
if(wifi_get_opmode() != SOFTAP_MODE)
{
wifi_set_opmode_current(softap_mode);
}
wifi_set_opmode_current(softap_mode);
wifi_softap_dhcps_stop();
IP4_ADDR(&ipinfo.ip, 10, 10, 10, 1);
IP4_ADDR(&ipinfo.gw, 10, 10, 10, 1);
IP4_ADDR(&ipinfo.netmask, 255, 255, 255, 0);
wifi_set_ip_info(SOFTAP_IF, &ipinfo);
wifi_softap_get_config(&apConfig);
os_memset(apConfig.ssid, 0, sizeof(apConfig.ssid));
os_sprintf(ssid, "%s", settings->ssid);
os_memcpy(apConfig.ssid, ssid, os_strlen(ssid));
如果 (wifi_get_opmode() == SOFTAP_MODE)
{
如果 (1==0)
{
SSID的
os_memset(apConfig.password, 0, sizeof(apConfig.password));
os_sprintf(password, "%s", settings->password);
os_memcpy(apConfig.password, password, os_strlen(password));
apConfig.authmode = AUTH_WPA_WPA2_PSK;
}
else
{
没有密码
os_memset(apConfig.ssid, 0, sizeof(apConfig.ssid));
os_sprintf(ssid, "%s", "esptemplate2");
os_memcpy(apConfig.ssid, ssid, os_strlen(ssid));
apConfig.authmode = AUTH_OPEN;
}
apConfig.channel = 1;
apConfig.max_connection = 2;
apConfig.ssid_hidden = 0;
apConfig.ssid_len = 0;
apConfig.beacon_interval = 100;
wifi_softap_set_config_current(&apConfig);
}
dhcps_lease();
wifi_softap_dhcps_start();
system_os_task(at_procTask、at_procTaskPrio、at_procTaskQueue、at_procTaskQueueLen);
system_os_post(at_procTaskPrio, 0, 0 );
进程io(ioobj,ioaction_init);
进程io(ioobj,ioaction_setoutputs);
os_timer_disarm(ETSTimer *ptimer)
os_timer_disarm(&working_timer);
os_timer_setfn(ETSTimer *ptimer, ETSTimerFunc *pfunction, void *parg)
os_timer_setfn(&working_timer, (os_timer_func_t *)working_cb, (void *)0);
void os_timer_arm(ETSTimer *ptimer,uint32_t毫秒,bool repeat_flag)
os_timer_arm(&working_timer, 100, 1);
httpdInit(builtInUrls, 80);
os_printf("nReadyn");
}