admin管理员组

文章数量:1620370

0.前言

本文介绍ESP32C3 WiFi 连接过程,ESP32C3连接WiFi可分为三个步骤。

  • 初始化WiFi(包括初始化LwIP、初始化WiFi驱动程序、初始化系统事件等)

  • 配置WiFi(设置WiFi账号密码,设置WiFi的安全方面的设置等)

  • 启动WiFi

1.初始化WiFi

  • 使用esp_netif_init()创建一个LwIP核心任务,并初始化LwIP相关工作。

  • 使用esp_event_loop_create_default()创建一个系统事件任务,并初始化应用程序事件的回调函数。

  • 使用esp_netif_create_default_wifi_sta()创建有 TCP/IP 堆栈的默认网络接口实例绑定 station

  • 使用esp_wifi_init()初始化WiFi驱动

以上的初始化为固定的初始化为固定的流程,是否理解都不影响正常的业务开发(下面的是初始化的重点)
  • 使用 esp_event_handler_instance_register()事件回调函数。

    esp_event_handler_instance_register()函数有5个参数

    参数 作用
    event_base 类型为esp_event_base_t,设置触发回调函数事件的事件类型
    event_id 类型为int32_t说明event_base类型下具体的事件类型
    event_handler 类型为esp_event_handler_t设置回调函数
    event_handler_arg 类型为void *向回调函数传递的额外数据,如果不需要传递额外的数据设置为NULL
    instance 类型为esp_event_handler_instance_t *标识已注册事件处理程序实例的上下文

    在乐鑫SDK的station示例中(位于wifi\getting_started\station)使用esp_event_handler_instance_register()函数注册了两个回调函数

    static void event_handler(void* arg,esp_event_base_t event_base,int32_t event_id, void* event_data)
    {
         
       /*此处略,下文有该回调函数的详细分析*/
    }
    
    
    esp_event_handler_instance_t instance_any_id;
    //注册第一个回调函数
    esp_event_handler_instance_register(WIFI_EVENT,          

本文标签: wifi