Code: Select all
void user_esp_platform_check_ip(void)
{
struct ip_info ipconfig;
os_timer_disarm(&g_check_ip_timer);
wifi_station_set_hostname("8266_test");
wifi_get_ip_info(STATION_IF, &ipconfig);
if (wifi_station_get_connect_status() == STATION_GOT_IP
&& ipconfig.ip.addr != 0)
{
os_printf("got ip\r\n");
//set sleep type
if (wifi_set_sleep_type(LIGHT_SLEEP_T))
os_printf("sleep success\r\n");
else
os_printf("sleep fail\r\n");
}
else
{
if (wifi_station_get_connect_status() == STATION_WRONG_PASSWORD ||
wifi_station_get_connect_status() == STATION_NO_AP_FOUND ||
wifi_station_get_connect_status() == STATION_CONNECT_FAIL)
{
os_printf("connect fail\r\n");
}
else
{
os_timer_setfn(&g_check_ip_timer, (os_timer_func_t*)user_esp_platform_check_ip, NULL);
os_timer_arm(&g_check_ip_timer, 200, 0);
}
}
}
void wifi_config(void)
{
char ssid[32] = "******";
char password[64] = "******";
struct station_config station_cfg = {0};
os_printf("wifi config\r\n");
os_memcpy(&station_cfg.ssid, ssid, 32);
os_memcpy(&station_cfg.password, password, 64);
wifi_station_set_config(&station_cfg);
os_timer_disarm(&g_check_ip_timer);
os_timer_setfn(&g_check_ip_timer, (os_timer_func_t*)user_esp_platform_check_ip, NULL);
os_timer_arm(&g_check_ip_timer, 200, 0);
}
void user_init(void)
{
uart_init(115200, 115200);
wifi_set_opmode(STATION_MODE);
wifi_config();
}
这段代码我是根据论坛里的http://bbs.espressif.com/viewtopic.php?f=65&t=2421 这个discuss 进行修改的。
还有一点是我买到的是开发板,但是我想单独测上面的wifi模块的功耗,所以就去掉了底板5V供电,自己用3.3V单独给wifi模块进行供电,模块是能正常工作的,感觉应该影响不大,不过还是提一下。希望有人看到了能尽快给答复啊。。。。谢谢啦。