您的位置:首页 > 其它

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

2018-12-22 11:28 721 查看
版权声明:转载请注明作者及来源 https://blog.csdn.net/qq_41619856/article/details/85176819

在前两篇博客中,已经讲了开发环境的搭建,怎样导入项目和项目编译后如何烧录到芯片中以及可能出现的问题。现在我们这篇就来讲讲不用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的连接了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: