瑞芯微Rockchip开发者社区
直播中

丁冬芹

7年用户 1304经验值
私信 关注
[问答]

怎样将ESP8266的wifi模式设置为softAP模式呢

什么叫AP模式?
如何让ESP8266创建一个WIFI模式呢?
怎样将ESP8266的wifi模式设置为softAP模式呢?




回帖(1)

孙喆

2022-1-14 11:08:51
首先,我们要了解一下什么叫AP模式,其术语我就不介绍了,在我看来,就是我们让ESP8266创建一个WIFI,让它成为一个WiFi,我们用手机或者电脑去连接它,而不是让ESP8266去连接其它WiFi。

首先我们调用bool wifi_set_opmode (uint8 opmode)这个API,将ESP8266的wifi模式设置为softAP模式

API:wifi_set_opmode(uint8 opmode)

功能:设置 Wi-Fi ⼯作模式(Station, SoftAP 或者 Station+SoftAP),并保存到 Flash

参数:0x01(Station模式)、0x02(softAP模式)、0x03(Station + softAP模式)

然后我们要配置bool wifi_softap_set_config (struct softap_config *config)这个API,其参数为一个struct softap_config类型的结构体的指针

API:wifi_softap_set_config (struct softap_config *config)

功能:设置wifi SoftAP接口配置

参数:struct softap_config {
    uint8 ssid[32];                        //WIFI名称
    uint8 password[64];               //密码
    uint8 ssid_len;                       // WIFI名称长度
    uint8 channel;                       //通道号
    AUTH_MODE authmode;    // 加密方式
    uint8 ssid_hidden;               // 是否隐藏密码,0为不隐藏
    uint8 max_connection;        // 最大连接数,就是允许几个人连入ESP8266创建的WIFI
    uint16 beacon_interval;       //信标间隔时槽,这个我不懂,有空问一问
};

所以我们首先要新建一个struct softap_config类型的结构体,然后配置其各个参数,值得注意的是其中的ssid和password是两个数组,应该使用os_strcpy()来赋值。我的赋值如下

        struct    softap_config AP_config;

        wifi_set_opmode(0x02);//将8266设置为AP模式

        os_memset(&AP_config, 0, sizeof(struct softap_config));    // AP参数结构体 = 0
        AP_config.authmode = AUTH_WPA2_PSK;
        AP_config.beacon_interval = 100;//信标间隔时槽
        AP_config.channel = 1;
        AP_config.max_connection = 2;
        AP_config.ssid_hidden = 0;
        AP_config.ssid_len = os_strlen(ESP8266_SSID);
        os_strcpy(AP_config.ssid,ESP8266_SSID);        // 设置SSID(将字符串复制到ssid数组)
        os_strcpy(AP_config.password,ESP8266_PASSWORD);    // 设置密码(将字符串复制到password数组)
        wifi_softap_set_config(&AP_config);


其中为了防止我们使用的那段内存中本身存在一些值,使用了os_memset(&AP_config, 0, sizeof(struct softap_config))先将我们定义的struct    softap_config类型结构体AP_config先清零

至此,ESP8266设置wifi模式就已将完成了。

其实现在看来,其实就是调用了两个API

wifi_set_opmode(uint8 opmode)

wifi_softap_set_config (struct softap_config *config)
举报

更多回帖

发帖
×
20
完善资料,
赚取积分