ESP8266链接WiFi

写了一个非常简单的链接WiFi的例子

uint8 *ssid = "qwerty";//wifi名字
uint8 *passwd = "123456789";//wifi密码
os_timer_t wifi_link_t;

void ICACHE_FLASH_ATTR
wifi_status(void *arg)
{
	static count = 0;

	os_timer_disarm(&wifi_link_t);

	if(wifi_station_get_connect_status() == STATION_GOT_IP)//WiFi链接成功
	{//链接成功
		count = 0;
		os_printf("\n链接成功\n");
		return;
	}else if(count >= 7)//WiFi链接失败
	{//链接失败
		wifi_station_disconnect();//关闭连接
		count = 0;
		os_printf("\n链接失败\n");
		return;
	}

	os_timer_arm(&wifi_link_t,2000,0);
}

void ICACHE_FLASH_ATTR
sys_init_cb(void)
{
	struct station_config stationConf;

	os_memcpy(&stationConf.ssid, ssid, strlen(ssid));
	os_memcpy(&stationConf.password, passwd,strlen(passwd));

	wifi_station_disconnect();//断开链接的路由
	wifi_station_set_config(&stationConf);//设置参数
	wifi_station_connect();//连接ap

	//初始化WiFi status定时器
	os_timer_disarm(&wifi_link_t);
	os_timer_setfn(&wifi_link_t,wifi_status,NULL);
}

void ICACHE_FLASH_ATTR
user_init(void)
{
	uart_init(115200,115200);
	wifi_set_opmode_current(STATIONAP_MODE);//设置WiFi工作模式
	system_init_done_cb(sys_init_cb);//创建初始化完成后回调函数
}

源码下载

你可能感兴趣的:(ESP8266)