ESP8266开发笔记(三)SDK开发之AP、Station模式设置

在前两篇博客中,已经讲了开发环境的搭建,怎样导入项目和项目编译后如何烧录到芯片中以及可能出现的问题。现在我们这篇就来讲讲不用AT指令,在SDK中如何将ESP8266配置为AP或者Station模式。

1、何为AP、Station模式

AP模式:提供无线网络接入服务,允许其他无线设备连接其网络,类似无线路由器。
Station模式:本身不提供无线接入服务,可以连接AP,类似无线终端设备。

2、AP模式配置

在SDK中,我们主要在其官方提供的初始化接口函数void user_init(void)中来编程,实现我们想要的功能。这个函数就位于文件夹app->user里的user_main.c文件里。
官方在SDK里提供了很多函数,方便用户进行操作,所以我们先下载其提供的API文档:API文档
提取码:he2d
一切都准备好了,就可以开始敲代码了 。

 uint8 macaddr[6];
 struct softap_config  config;
 uint8 macID[16] = {0} ;
 //os_delay_us(2000);
 wifi_set_opmode(0x02);
 wifi_get_macaddr(SOFTAP_IF,macaddr);
 os_sprintf(macID,"ESP%x%x%x%x%x%x",macaddr[0],macaddr[1],macaddr[2],macaddr[3],macaddr[4],macaddr[5]);
 os_memcpy(config.ssid,macID,strlen(macID));
 //os_memcpy(config.password,"123456",strlen("123456"));//如果要进行加密,加上这句
 config.ssid_len = strlen(macID);
 //config.authmode = AUTH_WPA2_PSK;        //选择加密方式,如果要进行加密,加上这句
 config.max_connection = 5;
 wifi_softap_set_config(&config);

AP模式的配置代码都在上面了,如果加入串口打印,那么可以再加上一句串口初始化uart_init(115200,115200);
下面简单说下其中的一些函数目的,使用wifi_get_macaddr,是为了读取ESP8266模块的MAC地址,用来命名WIFI,MAC地址具有唯一性,所以我们就可以避免同一个固件烧录到不同模块时,WIFI名一样的问题。
wifi_set_opmode则是选择哪种模式,AP、Station或者AP-Station。其他也不多说了,编译好后就烧录到模块,看看实际效果。

3、Station模式设置

上面我们已经说了如何配置AP模式,Station模式的配置也跟它差不多。

 struct station_config stationCon;
 uint8 AP_SSID[] = "ESP827d3a338cd0";    //要连接的WIFI名
 //uint8 password[] = "123456";    //要连接的WIFI密码
 wifi_set_opmode(STATION_MODE);
 stationCon.bssid_set = 0;
 os_memcpy(&stationCon.ssid,AP_SSID,strlen(AP_SSID));
 //os_memcpy(&stationCon.password,passwordstrlen(password));  //有密码的话加上这句
 wifi_station_set_config(&stationCon);
 wifi_station_connect();

这样,再把这个烧录到另一个模块,我们就能实现ESP8266的连接了

你可能感兴趣的:(ESP8266)