【ESP32学习之路5——station模式下连接到WiFi热点】

一、Wi-Fi station 一般情况

WiFi station的工作流程参考ESP-IDF编程指南中的API指南的WiFi模块ESP32 WiFi station一般情况在不同阶段都有具体的描述。

二、WiFi station工作流程

在ESP-IDF下copy出/home/andy/esp/esp-idf/examples/wifi/getting_started/station,此demo连接到路由器。整个demo都是在调用ESP-IDF提供的接口,整个过程如下:

1、主程序

void app_main(void)
{
   
    //Initialize NVS
    esp_err_t ret = nvs_flash_init();
    if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
   
      ESP_ERROR_CHECK(nvs_flash_erase());
      ret = nvs_flash_init();
    }
    ESP_ERROR_CHECK(ret);

    ESP_LOGI(TAG, "ESP_WIFI_MODE_STA!!!!");
    wifi_init_sta();
}

在main函数中对nvs进行初始化用于保存路由器信息,然后进入wifi_init_sta();函数连接到路由器

2、WiFi连接函数

WiFi连接函数大致分为三个阶段:1. Wi-Fi/LwIP 初始化阶段;2. Wi-Fi 配置阶段;3. Wi-Fi 启动阶段
具体过程在相关函数后注释了一些,细节还是看看乐鑫文档

void wifi_init_sta(void)
{
   
    s_wifi_event_group = xEventGroupCreate();
    //1. Wi-Fi/LwIP 初始化阶段
    ESP_ERROR_CHECK(esp_netif_init());//初始化LwIP,创建LwIP核心任务并初始化与LwIP相关的工作。
    printf("sequence1.\n");
    ESP_ERROR_CHECK(esp_event_loop_create_default());//创建一个系统事件任务,并初始化应用程序事件的回调函数
    esp_netif_create_default_wifi_sta();//创建有 TCP/IP 堆栈的默认网络接口实例绑定 station
    printf("sequence2.\n")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值