ESP8266学习记录(一):新建一个WiFi热点(AP)/站点(STA)
宏 ESP_ERROR_CHECK() 的功能和 assert 类似,不同之处在于:这个宏会检查 esp_err_t 的值,而非判断 bool 条件。如果传给 ESP_ERROR_CHECK() 的参数不等于 ESP_OK ,则会在控制台上打印错误消息,然后调用 abort() 函数。
WiFi热点(AP)
ESP8266开启WiFi热点:
#include "esp_wifi.h"
1.初始化tcp/ip适配层
tcpip_adapter_init();
2.初始化事件调度器
ESP_ERROR_CHECK(esp_event_loop_create_default());
3.初始化wifi驱动
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();//wifi_init_config_t 结构体中放置着WiFi的配置参数
ESP_ERROR_CHECK(esp_wifi_init(&cfg));//此函数必须在调用wifi其它相关api函数前调用
4.如需要可注册WIFI_EVENT事件,获取mac地址
ESP_ERROR_CHECK(esp_event_handler_register(WIFI_EVENT,ESP_EVENT_ANY_ID,&wifi_event_handler,NULL));
5.配置wifi工作在AP模式下及其接口参数
wifi_config_t wifi_cfg = {
.ap = {
.ssid = WIFI_SSID,
.ssid_len = strlen(WIFI_SSID),
.password = WIFI_PASSWORD,
.max_connection = 2,
.authmode = WIFI_AUTH_WPA_WPA2_PSK
},
};
if(strlen(WIFI_PASSWORD)==0)
{
wifi_cfg.ap.authmode = WIFI_AUTH_OPEN;
}
ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_AP))