声明所有的API全部整理自《ESP-IDF 编程指南 v6.0.1 文档》网络接口(neift)#include esp_netif.hREQUIRES esp_netif or PRIV_REQUIRES esp_netif配置MAC地址、主机名、IP地址esp_netif_initesp_err_t esp_netif_init( void )功能初始化底层的 TCP/IP 协议栈。此函数应在应用程序启动时从应用程序代码中恰好调用一次。esp_netif_deinitesp_err_t esp_netif_deinit ( void )功能取消初始化 esp-netif 组件以及底层 TCP/IP 协议栈esp_netif_set_macesp_err_t esp_netif_set_mac ( esp_netif_t * esp_netif , uint8_t mac [ ] )功能设置接口实例的MAC地址。输入参数esp_netifesp-netif 实例的句柄输出参数mac [ ]相关网络接口所需的 MAC 地址esp_netif_get_macesp_err_t esp_netif_get_mac ( esp_netif_t * esp_netif , uint8_t mac [ ] )功能获取接口实例的MAC地址。输入参数esp_netifesp-netif 实例的句柄输出参数mac [ ]相关网络接口的最终 MAC 地址esp_netif_set_hostnameesp_err_t esp_netif_set_hostname ( esp_netif_t * esp_netif , const char * hostname )功能设置接口的主机名。配置的主机名会覆盖默认配置值 CONFIG_LWIP_LOCAL_HOSTNAME。请注意如果在接口启动/连接后更改主机名则更改只有在接口重启/重新连接后才会生效。输入参数esp_netifesp-netif 实例的句柄输出参数hostname 接口的新主机名。最大长度为 32 字节。esp_netif_get_hostnameesp_err_t esp_netif_get_hostname ( esp_netif_t * esp_netif , const char * * hostname )功能获取接口主机名。输入参数esp_netifesp-netif 实例的句柄输出参数hostname 返回指向主机名的指针。如果未设置主机名则可能为 NULL。如果设置了非 NULL 值则指针保持有效如果主机名更改字符串也可能随之更改。esp_netif_is_netif_upbool esp_netif_is_netif_up ( esp_netif_t * esp_netif )功能测试所提供的接口是否正常工作。输入参数esp_netifesp-netif 实例的句柄esp_netif_get_ip_infoesp_err_t esp_netif_get_ip_info ( esp_netif_t * esp_netif , esp_netif_ip_info_t * ip_info )功能获取接口的IP地址信息。如果接口正常则直接从 TCP/IP 协议栈读取 IP 信息。如果接口关闭则从 ESP-NETIF 实例中保存的副本读取 IP 信息。输入参数esp_netifesp-netif 实例的句柄输出参数ip_info如果成功IP 信息将在此参数中返回。ip: 接口 IPv4 地址netmask: IPv4接口子网掩码gw: IPv4网关接口地址esp_netif_set_ip_infoesp_err_t esp_netif_set_ip_info ( esp_netif_t * esp_netif , const esp_netif_ip_info_t * ip_info )功能设置接口的IP地址信息。此功能主要用于在接口上设置静态IP地址。如果接口已启动则新的 IP 信息直接在 TCP/IP 协议栈中设置。保存在 ESP-NETIF 实例中的 IP 信息副本也会更新如果在接口仍然关闭时查询 IP则会返回此副本。在设置新的 IP 信息之前必须停止 DHCP 客户端/服务器如果已为此接口启用。输入参数esp_netifesp-netif 实例的句柄输出参数ip_info如果成功IP 信息将在此参数中返回。ip: 接口 IPv4 地址netmask: IPv4接口子网掩码gw: IPv4网关接口地址调用此接口可能会生成 SYSTEM_EVENT_STA_GOT_IP 或 SYSTEM_EVENT_ETH_GOT_IP 事件。esp_netif_get_all_ip6int esp_netif_get_all_ip6 ( esp_netif_t * esp_netif , esp_ip6_addr_t if_ip6 [ ] )功能获取指定接口的所有 IPv6 地址。输入参数esp_netifesp-netif 实例的句柄输出参数if_ip6 [ ]IPv6 地址数组将被复制到参数中返回值返回的 IPv6 地址数量esp_netif_add_ip6_addressesp_err_t esp_netif_add_ip6_address ( esp_netif_t * esp_netif , const esp_ip6_addr_t addr , bool preferred )功能使 TCP/IP 协议栈向接口添加 IPv6 地址。输入参数esp_netifesp-netif 实例的句柄addr要添加的地址preferred地址的优先状态esp_netif_remove_ip6_addressesp_err_t esp_netif_remove_ip6_address ( esp_netif_t * esp_netif , const esp_ip6_addr_t * addr )功能使 TCP/IP 协议栈向接口添加 IPv6 地址。输入参数esp_netifesp-netif 实例的句柄addr要移除的地址WIFI默认API#include esp_wifi.hREQUIRES esp_wifi or PRIV_REQUIRES esp_wifiesp_netif_attach_wifi_stationesp_err_t esp_netif_attach_wifi_station ( esp_netif_t * esp_netif )功能将 wifi STA接口连接到提供的 netif。输入参数esp_netif要将 wifi 站点连接到的实例esp_netif_attach_wifi_apesp_err_t esp_netif_attach_wifi_ap ( esp_netif_t * esp_netif )功能将 wifi AP 接口连接到提供的 netif。输入参数esp_netif要将 wifi 站点连接到的实例esp_wifi_set_default_wifi_sta_handlersesp_err_t esp_wifi_set_default_wifi_sta_handlers ( void )功能设置 STA 接口的默认 wifi 事件处理程序。esp_wifi_set_default_wifi_ap_handlersesp_err_t esp_wifi_set_default_wifi_ap_handlers ( void )功能设置 AP 接口的默认 wifi 事件处理程序。esp_wifi_set_default_wifi_nan_handlersesp_err_t esp_wifi_set_default_wifi_nan_handlers ( void )功能设置 NAN 接口的默认 wifi 事件处理程序。esp_wifi_clear_default_wifi_driver_and_handlersesp_err_t esp_wifi_clear_default_wifi_driver_and_handlers ( void * esp_netif )功能清除所提供网络接口的默认 wifi 事件处理程序。输入参数esp_netifesp-netif 实例的句柄esp_netif_create_default_wifi_apesp_netif_t * esp_netif_create_default_wifi_ap ( void )功能创建默认的无线网络接入点。如果出现任何初始化错误此 API 将中止运行。该 API 会创建一个包含默认 WiFi 接入点配置的 esp_netif 对象将该网络接口连接到 WiFi并将 WiFi 处理程序注册到默认事件循环中。此 API 使用 assert() 来检查潜在错误因此可能会中止程序。请注意调用此 API 之前需要创建默认事件循环。返回值指向 esp-netif 实例的句柄。esp_netif_create_default_wifi_staesp_netif_t * esp_netif_create_default_wifi_sta ( void )功能创建默认的WIFI STA。如果出现任何初始化错误此API将中止。该 API 会创建一个包含默认 WiFi 站点配置的 esp_netif 对象将该网络接口连接到 WiFi并将 WiFi 处理程序注册到默认事件循环中。此 API 使用 assert() 来检查潜在错误因此可能会中止程序。请注意调用此 API 之前需要创建默认事件循环。返回值指向 esp-netif 实例的句柄。esp_netif_create_default_wifi_nanesp_netif_t * esp_netif_create_default_wifi_nan ( void )功能创建默认的WIFI NAN。如果出现任何初始化错误此API将中止。该 API 会创建一个包含默认 WiFi 站点配置的 esp_netif 对象将该网络接口连接到 WiFi并将 WiFi 处理程序注册到默认事件循环中。请注意调用此 API 之前需要创建默认事件循环。返回值指向 esp-netif 实例的句柄。esp_netif_destroy_default_wifivoid esp_netif_destroy_default_wifi ( void * esp_netif )功能销毁使用 esp_netif_create_default_wifi_...() API 创建的默认 WIFI 网络接口。此 API 会注销 WiFi 处理程序并将创建的对象与 WiFi 分离。如果 esp_netif 为 NULL则此函数不执行任何操作输入参数esp_netif 要从 WiFi 断开连接并销毁的对象esp_netif_create_wifiesp_netif_t * esp_netif_create_wifi ( wifi_interface_t wifi_if , const esp_netif_inherent_config_t * esp_netif_config )功能根据自定义配置创建 esp_netif WiFi 对象。此 API 不会注册默认处理程序输入参数wifi_ifwifi接口类型WIFI_IF_STASTA接口WIFI_IF_APSoft-AP接口WIFI_IF_NANNAN 接口WIFI_IF_MAX接口最大数量esp_netif_config 固有的 esp-netif 配置指针返回值指向 esp-netif 实例的指针esp_netif_create_default_wifi_mesh_netifsesp_err_t esp_netif_create_default_wifi_mesh_netifs ( esp_netif_t ** p_netif_sta , esp_netif_t ** p_netif_ap )功能为 esp-mesh 创建默认的 STA 和 AP 网络接口。这两个网络接口几乎与默认的站点和软AP完全相同只是禁用了DHCP客户端和服务器。请注意DHCP客户端通常仅在设备被提升为根节点时才会启用。输出参数p_netif_sta用于保存生成的 STA 接口如果非 NULLp_netif_ap用于保存生成的 AP 接口如果非 NULL返回已创建的接口如果应用程序代码不需要保存接口实例以供进一步处理则可以将参数设置为 NULL 来忽略这些接口。WIFI库#include esp_wifi.hREQUIRES esp_wifi or PRIV_REQUIRES esp_wifiesp_wifi_initesp_err_t esp_wifi_init ( const wifi_init_config_t * config )功能初始化 WiFi 为 WiFi 驱动程序分配资源例如 WiFi 控制结构、RX/TX 缓冲区、WiFi NVS 结构等。此 WiFi 还启动 WiFi 任务。必须先调用此 API才能调用所有其他 WiFi API。输入参数config指向 WiFi 初始化配置结构的指针可以指向临时变量。始终使用 WIFI_INIT_CONFIG_DEFAULT 宏将配置初始化为默认值如果想设置自己的初始值请覆盖 WIFI_INIT_CONFIG_DEFAULT 设置的默认值。请注意 wifi_init_config_t的字段“magic”必须始终设置为 WIFI_INIT_CONFIG_MAGICosi_funcsWiFi操作系统功能wpa_crypto_funcs连接时 WiFi 工作站加密功能static_rx_buf_numWiFi静态接收缓冲区数量dynamic_rx_buf_numWiFi动态接收缓冲区数量tx_buf_typeWiFi TX 缓冲类型static_tx_buf_numWiFi静态TX缓冲区数量dynamic_tx_buf_numWiFi动态TX缓冲区数量rx_mgmt_buf_typeWiFi RX MGMT 缓冲区类型rx_mgmt_buf_numWiFi RX 管理缓冲区数量cache_tx_buf_numWiFi TX 缓存缓冲区数量csi_enableWiFi 信道状态信息启用标志ampdu_rx_enableWiFi AMPDU RX 功能启用标志ampdu_tx_enableWiFi AMPDU TX 功能启用标志amsdu_tx_enableWiFi AMSDU TX 功能启用标志nvs_enableWiFi NVS 闪存启用标志nano_enableprintf/scan 系列的 Nano 选项启用标志rx_ba_winWiFi 阻止确认接收窗口大小wifi_task_core_idWiFi 任务核心 IDbeacon_max_lenWiFi软AP信标的最大长度mgmt_sbuf_numWiFi 管理短缓冲区数量最小值为 6最大值为 32。feature_caps启用额外的 WiFi 功能和性能sta_disconnected_pm断开连接状态下站点的 WiFi 电源管理espnow_max_encrypt_numespnow 支持的最大加密对等节点数tx_hetb_queue_numWiFi TX HE TB 队列编号用于 STA HE TB PPDU 传输dump_hesigb_enable启用转储 SIGB 字段magicWiFi 初始化魔数它应该是最后一个字段esp_wifi_deinitesp_err_t esp_wifi_deinit ( void )功能取消初始化 WiFi释放esp_wifi_init中分配的所有资源并停止 WiFi 任务。如果要从系统中移除 WiFi 驱动程序则应调用此 API。esp_wifi_set_modeesp_err_t esp_wifi_set_mode ( wifi_mode_t mode )功能设置WiFi运行模式。输入参数modeWiFi 工作模式WIFI_MODE_NULLNull modeWIFI_MODE_STAWi-Fi station modeWIFI_MODE_APWi-Fi soft-AP modeWIFI_MODE_APSTAWi-Fi station soft-AP modeWIFI_MODE_NANWi-Fi NAN modeWIFI_MODE_MAXesp_wifi_get_modeesp_err_t esp_wifi_get_mode ( wifi_mode_t * mode )功能获取WiFi的当前运行模式。输出参数mode存储当前 WiFi 模式esp_wifi_startesp_err_t esp_wifi_start ( void )功能根据当前配置启动 WiFi。如果模式为 WIFI_MODE_STA则创建站点控制块并启动站点如果模式为 WIFI_MODE_AP则创建软 AP 控制块并启动软 AP如果模式为 WIFI_MODE_APSTA则创建软 AP 和站点控制块并启动软 AP 和站点如果模式为 WIFI_MODE_NAN则创建 NAN 控制块并启动 NAN。esp_wifi_stopesp_err_t esp_wifi_stop ( void )功能停止 WiFi如果模式为 WIFI_MODE_STA则停止站点并释放站点控制块如果模式为 WIFI_MODE_AP则停止软 AP 并释放软 AP 控制块如果模式为 WIFI_MODE_APSTA则停止站点/软 AP 并释放站点/软 AP 控制块如果模式为 WIFI_MODE_NAN则停止 NAN 并释放 NAN 控制块。esp_wifi_scan_startesp_err_t esp_wifi_scan_start ( const wifi_scan_config_t * config , bool block )功能扫描所有可用的接入点。每个信道的最大主动扫描时间和被动扫描时间均限制为 1500 毫秒。超过 1500 毫秒的值可能会导致站点与接入点断开连接因此不建议使用。如果调用此 API找到的 AP 将存储在 WiFi 驱动程序动态分配的内存中。然后可以在 esp_wifi_scan_get_ap_records()、esp_wifi_scan_get_ap_record() 或 esp_wifi_clear_ap_list() 中释放这些内存因此扫描完成后调用其中任何一个函数即可释放内存。输出参数config 扫描配置设置如果设置为 NULL则使用默认设置ssidAP的SSIDbssidAP的MAC地址channel频道扫描特定频道show_hidden启用此功能可扫描 SSID 隐藏的接入点默认falsescan_type扫描类型主动式或被动式默认activescan_time每通道扫描时间active.min每个通道的最小有效扫描时间单位毫秒默认0msactive.max每个信道的最大活动扫描时间单位毫秒超过 1500 毫秒的值可能会导致站点与 AP 断开连接因此不建议使用。默认120mspassive每个信道的被动扫描时间单位毫秒超过 1500 毫秒的值可能会导致站点与 AP 断开连接因此不建议使用。默认360mshome_chan_dwell_time连续扫描频道之间在家庭频道停留的时间。默认30mschannel_bitmap用于设置要扫描的特定信道的信道位图。请注意上述“channel”参数必须设置为0才能允许通过位图进行扫描。另请注意只能扫描由wifi_country_t配置的允许信道。coex_background_scan启用它以在共存模式下扫描返航频道block 如果 block 为true此 API 将同步执行扫描会阻塞调用者直到扫描完成如果为false会异步执行扫描函数会立即返回扫描完成时会通过事件循环任务执行事件处理程序。esp_wifi_scan_stopesp_err_t esp_wifi_scan_stop ( void )功能停止正在进行的扫描。esp_wifi_scan_get_ap_numesp_err_t esp_wifi_scan_get_ap_num ( uint16_t * number )功能获取上次扫描中找到的接入点数量。只有扫描完成后才能调用此 API否则可能会得到错误的值。输出参数number存储上次扫描中找到的 AP 数量esp_wifi_scan_get_ap_recordsesp_err_t esp_wifi_scan_get_ap_records ( uint16_t * number , wifi_ap_record_t * ap_records )功能获取上次扫描期间发现的接入点列表。返回的接入点列表按接收信号强度指示值 (RSSI) 降序排列。此 API 将释放扫描到的 AP 列表占用的所有内存。输出参数number[输入/输出]作为输入参数它存储 ap_records 可以容纳的最大 AP 编号。作为输出参数它接收此 API 返回的实际 AP 编号。ap_records用于保存已找到的 AP 的wifi_ap_record_t数组bssid[6]AP的MAC地址ssid[33]AP的SSIDprimaryAP的通道secondAP的辅助通道rssiAP的信号强度。请注意在极少数情况下当信号强度非常强时RSSI值可能会略为正值。authmodeAP的认证模式pairwise_cipherAP的成对密码group_cipherAP的组密钥ant用于接收基站信标的天线countryAP的国家信息bandwidthAP的带宽vht_ch_freq1这些字段仅用于AP带宽为80和160 MHz的情况用于传输BSS的中心信道频率。对于AP带宽为8080 MHz的情况则使用较低频段的中心信道频率。vht_ch_freq2这些字段仅用于 AP 带宽为 80 80 MHz 的情况用于传输第二段的中心信道频率。esp_wifi_clear_ap_listesp_err_t esp_wifi_clear_ap_list void功能清除上次扫描发现的AP接入点记录。此 API 将释放扫描到的 AP 列表占用的所有内存。如果获取的 AP 列表失败则必须清除 AP 记录否则可能会导致内存泄漏
ESP32实用API指南4
声明所有的API全部整理自《ESP-IDF 编程指南 v6.0.1 文档》网络接口(neift)#include esp_netif.hREQUIRES esp_netif or PRIV_REQUIRES esp_netif配置MAC地址、主机名、IP地址esp_netif_initesp_err_t esp_netif_init( void )功能初始化底层的 TCP/IP 协议栈。此函数应在应用程序启动时从应用程序代码中恰好调用一次。esp_netif_deinitesp_err_t esp_netif_deinit ( void )功能取消初始化 esp-netif 组件以及底层 TCP/IP 协议栈esp_netif_set_macesp_err_t esp_netif_set_mac ( esp_netif_t * esp_netif , uint8_t mac [ ] )功能设置接口实例的MAC地址。输入参数esp_netifesp-netif 实例的句柄输出参数mac [ ]相关网络接口所需的 MAC 地址esp_netif_get_macesp_err_t esp_netif_get_mac ( esp_netif_t * esp_netif , uint8_t mac [ ] )功能获取接口实例的MAC地址。输入参数esp_netifesp-netif 实例的句柄输出参数mac [ ]相关网络接口的最终 MAC 地址esp_netif_set_hostnameesp_err_t esp_netif_set_hostname ( esp_netif_t * esp_netif , const char * hostname )功能设置接口的主机名。配置的主机名会覆盖默认配置值 CONFIG_LWIP_LOCAL_HOSTNAME。请注意如果在接口启动/连接后更改主机名则更改只有在接口重启/重新连接后才会生效。输入参数esp_netifesp-netif 实例的句柄输出参数hostname 接口的新主机名。最大长度为 32 字节。esp_netif_get_hostnameesp_err_t esp_netif_get_hostname ( esp_netif_t * esp_netif , const char * * hostname )功能获取接口主机名。输入参数esp_netifesp-netif 实例的句柄输出参数hostname 返回指向主机名的指针。如果未设置主机名则可能为 NULL。如果设置了非 NULL 值则指针保持有效如果主机名更改字符串也可能随之更改。esp_netif_is_netif_upbool esp_netif_is_netif_up ( esp_netif_t * esp_netif )功能测试所提供的接口是否正常工作。输入参数esp_netifesp-netif 实例的句柄esp_netif_get_ip_infoesp_err_t esp_netif_get_ip_info ( esp_netif_t * esp_netif , esp_netif_ip_info_t * ip_info )功能获取接口的IP地址信息。如果接口正常则直接从 TCP/IP 协议栈读取 IP 信息。如果接口关闭则从 ESP-NETIF 实例中保存的副本读取 IP 信息。输入参数esp_netifesp-netif 实例的句柄输出参数ip_info如果成功IP 信息将在此参数中返回。ip: 接口 IPv4 地址netmask: IPv4接口子网掩码gw: IPv4网关接口地址esp_netif_set_ip_infoesp_err_t esp_netif_set_ip_info ( esp_netif_t * esp_netif , const esp_netif_ip_info_t * ip_info )功能设置接口的IP地址信息。此功能主要用于在接口上设置静态IP地址。如果接口已启动则新的 IP 信息直接在 TCP/IP 协议栈中设置。保存在 ESP-NETIF 实例中的 IP 信息副本也会更新如果在接口仍然关闭时查询 IP则会返回此副本。在设置新的 IP 信息之前必须停止 DHCP 客户端/服务器如果已为此接口启用。输入参数esp_netifesp-netif 实例的句柄输出参数ip_info如果成功IP 信息将在此参数中返回。ip: 接口 IPv4 地址netmask: IPv4接口子网掩码gw: IPv4网关接口地址调用此接口可能会生成 SYSTEM_EVENT_STA_GOT_IP 或 SYSTEM_EVENT_ETH_GOT_IP 事件。esp_netif_get_all_ip6int esp_netif_get_all_ip6 ( esp_netif_t * esp_netif , esp_ip6_addr_t if_ip6 [ ] )功能获取指定接口的所有 IPv6 地址。输入参数esp_netifesp-netif 实例的句柄输出参数if_ip6 [ ]IPv6 地址数组将被复制到参数中返回值返回的 IPv6 地址数量esp_netif_add_ip6_addressesp_err_t esp_netif_add_ip6_address ( esp_netif_t * esp_netif , const esp_ip6_addr_t addr , bool preferred )功能使 TCP/IP 协议栈向接口添加 IPv6 地址。输入参数esp_netifesp-netif 实例的句柄addr要添加的地址preferred地址的优先状态esp_netif_remove_ip6_addressesp_err_t esp_netif_remove_ip6_address ( esp_netif_t * esp_netif , const esp_ip6_addr_t * addr )功能使 TCP/IP 协议栈向接口添加 IPv6 地址。输入参数esp_netifesp-netif 实例的句柄addr要移除的地址WIFI默认API#include esp_wifi.hREQUIRES esp_wifi or PRIV_REQUIRES esp_wifiesp_netif_attach_wifi_stationesp_err_t esp_netif_attach_wifi_station ( esp_netif_t * esp_netif )功能将 wifi STA接口连接到提供的 netif。输入参数esp_netif要将 wifi 站点连接到的实例esp_netif_attach_wifi_apesp_err_t esp_netif_attach_wifi_ap ( esp_netif_t * esp_netif )功能将 wifi AP 接口连接到提供的 netif。输入参数esp_netif要将 wifi 站点连接到的实例esp_wifi_set_default_wifi_sta_handlersesp_err_t esp_wifi_set_default_wifi_sta_handlers ( void )功能设置 STA 接口的默认 wifi 事件处理程序。esp_wifi_set_default_wifi_ap_handlersesp_err_t esp_wifi_set_default_wifi_ap_handlers ( void )功能设置 AP 接口的默认 wifi 事件处理程序。esp_wifi_set_default_wifi_nan_handlersesp_err_t esp_wifi_set_default_wifi_nan_handlers ( void )功能设置 NAN 接口的默认 wifi 事件处理程序。esp_wifi_clear_default_wifi_driver_and_handlersesp_err_t esp_wifi_clear_default_wifi_driver_and_handlers ( void * esp_netif )功能清除所提供网络接口的默认 wifi 事件处理程序。输入参数esp_netifesp-netif 实例的句柄esp_netif_create_default_wifi_apesp_netif_t * esp_netif_create_default_wifi_ap ( void )功能创建默认的无线网络接入点。如果出现任何初始化错误此 API 将中止运行。该 API 会创建一个包含默认 WiFi 接入点配置的 esp_netif 对象将该网络接口连接到 WiFi并将 WiFi 处理程序注册到默认事件循环中。此 API 使用 assert() 来检查潜在错误因此可能会中止程序。请注意调用此 API 之前需要创建默认事件循环。返回值指向 esp-netif 实例的句柄。esp_netif_create_default_wifi_staesp_netif_t * esp_netif_create_default_wifi_sta ( void )功能创建默认的WIFI STA。如果出现任何初始化错误此API将中止。该 API 会创建一个包含默认 WiFi 站点配置的 esp_netif 对象将该网络接口连接到 WiFi并将 WiFi 处理程序注册到默认事件循环中。此 API 使用 assert() 来检查潜在错误因此可能会中止程序。请注意调用此 API 之前需要创建默认事件循环。返回值指向 esp-netif 实例的句柄。esp_netif_create_default_wifi_nanesp_netif_t * esp_netif_create_default_wifi_nan ( void )功能创建默认的WIFI NAN。如果出现任何初始化错误此API将中止。该 API 会创建一个包含默认 WiFi 站点配置的 esp_netif 对象将该网络接口连接到 WiFi并将 WiFi 处理程序注册到默认事件循环中。请注意调用此 API 之前需要创建默认事件循环。返回值指向 esp-netif 实例的句柄。esp_netif_destroy_default_wifivoid esp_netif_destroy_default_wifi ( void * esp_netif )功能销毁使用 esp_netif_create_default_wifi_...() API 创建的默认 WIFI 网络接口。此 API 会注销 WiFi 处理程序并将创建的对象与 WiFi 分离。如果 esp_netif 为 NULL则此函数不执行任何操作输入参数esp_netif 要从 WiFi 断开连接并销毁的对象esp_netif_create_wifiesp_netif_t * esp_netif_create_wifi ( wifi_interface_t wifi_if , const esp_netif_inherent_config_t * esp_netif_config )功能根据自定义配置创建 esp_netif WiFi 对象。此 API 不会注册默认处理程序输入参数wifi_ifwifi接口类型WIFI_IF_STASTA接口WIFI_IF_APSoft-AP接口WIFI_IF_NANNAN 接口WIFI_IF_MAX接口最大数量esp_netif_config 固有的 esp-netif 配置指针返回值指向 esp-netif 实例的指针esp_netif_create_default_wifi_mesh_netifsesp_err_t esp_netif_create_default_wifi_mesh_netifs ( esp_netif_t ** p_netif_sta , esp_netif_t ** p_netif_ap )功能为 esp-mesh 创建默认的 STA 和 AP 网络接口。这两个网络接口几乎与默认的站点和软AP完全相同只是禁用了DHCP客户端和服务器。请注意DHCP客户端通常仅在设备被提升为根节点时才会启用。输出参数p_netif_sta用于保存生成的 STA 接口如果非 NULLp_netif_ap用于保存生成的 AP 接口如果非 NULL返回已创建的接口如果应用程序代码不需要保存接口实例以供进一步处理则可以将参数设置为 NULL 来忽略这些接口。WIFI库#include esp_wifi.hREQUIRES esp_wifi or PRIV_REQUIRES esp_wifiesp_wifi_initesp_err_t esp_wifi_init ( const wifi_init_config_t * config )功能初始化 WiFi 为 WiFi 驱动程序分配资源例如 WiFi 控制结构、RX/TX 缓冲区、WiFi NVS 结构等。此 WiFi 还启动 WiFi 任务。必须先调用此 API才能调用所有其他 WiFi API。输入参数config指向 WiFi 初始化配置结构的指针可以指向临时变量。始终使用 WIFI_INIT_CONFIG_DEFAULT 宏将配置初始化为默认值如果想设置自己的初始值请覆盖 WIFI_INIT_CONFIG_DEFAULT 设置的默认值。请注意 wifi_init_config_t的字段“magic”必须始终设置为 WIFI_INIT_CONFIG_MAGICosi_funcsWiFi操作系统功能wpa_crypto_funcs连接时 WiFi 工作站加密功能static_rx_buf_numWiFi静态接收缓冲区数量dynamic_rx_buf_numWiFi动态接收缓冲区数量tx_buf_typeWiFi TX 缓冲类型static_tx_buf_numWiFi静态TX缓冲区数量dynamic_tx_buf_numWiFi动态TX缓冲区数量rx_mgmt_buf_typeWiFi RX MGMT 缓冲区类型rx_mgmt_buf_numWiFi RX 管理缓冲区数量cache_tx_buf_numWiFi TX 缓存缓冲区数量csi_enableWiFi 信道状态信息启用标志ampdu_rx_enableWiFi AMPDU RX 功能启用标志ampdu_tx_enableWiFi AMPDU TX 功能启用标志amsdu_tx_enableWiFi AMSDU TX 功能启用标志nvs_enableWiFi NVS 闪存启用标志nano_enableprintf/scan 系列的 Nano 选项启用标志rx_ba_winWiFi 阻止确认接收窗口大小wifi_task_core_idWiFi 任务核心 IDbeacon_max_lenWiFi软AP信标的最大长度mgmt_sbuf_numWiFi 管理短缓冲区数量最小值为 6最大值为 32。feature_caps启用额外的 WiFi 功能和性能sta_disconnected_pm断开连接状态下站点的 WiFi 电源管理espnow_max_encrypt_numespnow 支持的最大加密对等节点数tx_hetb_queue_numWiFi TX HE TB 队列编号用于 STA HE TB PPDU 传输dump_hesigb_enable启用转储 SIGB 字段magicWiFi 初始化魔数它应该是最后一个字段esp_wifi_deinitesp_err_t esp_wifi_deinit ( void )功能取消初始化 WiFi释放esp_wifi_init中分配的所有资源并停止 WiFi 任务。如果要从系统中移除 WiFi 驱动程序则应调用此 API。esp_wifi_set_modeesp_err_t esp_wifi_set_mode ( wifi_mode_t mode )功能设置WiFi运行模式。输入参数modeWiFi 工作模式WIFI_MODE_NULLNull modeWIFI_MODE_STAWi-Fi station modeWIFI_MODE_APWi-Fi soft-AP modeWIFI_MODE_APSTAWi-Fi station soft-AP modeWIFI_MODE_NANWi-Fi NAN modeWIFI_MODE_MAXesp_wifi_get_modeesp_err_t esp_wifi_get_mode ( wifi_mode_t * mode )功能获取WiFi的当前运行模式。输出参数mode存储当前 WiFi 模式esp_wifi_startesp_err_t esp_wifi_start ( void )功能根据当前配置启动 WiFi。如果模式为 WIFI_MODE_STA则创建站点控制块并启动站点如果模式为 WIFI_MODE_AP则创建软 AP 控制块并启动软 AP如果模式为 WIFI_MODE_APSTA则创建软 AP 和站点控制块并启动软 AP 和站点如果模式为 WIFI_MODE_NAN则创建 NAN 控制块并启动 NAN。esp_wifi_stopesp_err_t esp_wifi_stop ( void )功能停止 WiFi如果模式为 WIFI_MODE_STA则停止站点并释放站点控制块如果模式为 WIFI_MODE_AP则停止软 AP 并释放软 AP 控制块如果模式为 WIFI_MODE_APSTA则停止站点/软 AP 并释放站点/软 AP 控制块如果模式为 WIFI_MODE_NAN则停止 NAN 并释放 NAN 控制块。esp_wifi_scan_startesp_err_t esp_wifi_scan_start ( const wifi_scan_config_t * config , bool block )功能扫描所有可用的接入点。每个信道的最大主动扫描时间和被动扫描时间均限制为 1500 毫秒。超过 1500 毫秒的值可能会导致站点与接入点断开连接因此不建议使用。如果调用此 API找到的 AP 将存储在 WiFi 驱动程序动态分配的内存中。然后可以在 esp_wifi_scan_get_ap_records()、esp_wifi_scan_get_ap_record() 或 esp_wifi_clear_ap_list() 中释放这些内存因此扫描完成后调用其中任何一个函数即可释放内存。输出参数config 扫描配置设置如果设置为 NULL则使用默认设置ssidAP的SSIDbssidAP的MAC地址channel频道扫描特定频道show_hidden启用此功能可扫描 SSID 隐藏的接入点默认falsescan_type扫描类型主动式或被动式默认activescan_time每通道扫描时间active.min每个通道的最小有效扫描时间单位毫秒默认0msactive.max每个信道的最大活动扫描时间单位毫秒超过 1500 毫秒的值可能会导致站点与 AP 断开连接因此不建议使用。默认120mspassive每个信道的被动扫描时间单位毫秒超过 1500 毫秒的值可能会导致站点与 AP 断开连接因此不建议使用。默认360mshome_chan_dwell_time连续扫描频道之间在家庭频道停留的时间。默认30mschannel_bitmap用于设置要扫描的特定信道的信道位图。请注意上述“channel”参数必须设置为0才能允许通过位图进行扫描。另请注意只能扫描由wifi_country_t配置的允许信道。coex_background_scan启用它以在共存模式下扫描返航频道block 如果 block 为true此 API 将同步执行扫描会阻塞调用者直到扫描完成如果为false会异步执行扫描函数会立即返回扫描完成时会通过事件循环任务执行事件处理程序。esp_wifi_scan_stopesp_err_t esp_wifi_scan_stop ( void )功能停止正在进行的扫描。esp_wifi_scan_get_ap_numesp_err_t esp_wifi_scan_get_ap_num ( uint16_t * number )功能获取上次扫描中找到的接入点数量。只有扫描完成后才能调用此 API否则可能会得到错误的值。输出参数number存储上次扫描中找到的 AP 数量esp_wifi_scan_get_ap_recordsesp_err_t esp_wifi_scan_get_ap_records ( uint16_t * number , wifi_ap_record_t * ap_records )功能获取上次扫描期间发现的接入点列表。返回的接入点列表按接收信号强度指示值 (RSSI) 降序排列。此 API 将释放扫描到的 AP 列表占用的所有内存。输出参数number[输入/输出]作为输入参数它存储 ap_records 可以容纳的最大 AP 编号。作为输出参数它接收此 API 返回的实际 AP 编号。ap_records用于保存已找到的 AP 的wifi_ap_record_t数组bssid[6]AP的MAC地址ssid[33]AP的SSIDprimaryAP的通道secondAP的辅助通道rssiAP的信号强度。请注意在极少数情况下当信号强度非常强时RSSI值可能会略为正值。authmodeAP的认证模式pairwise_cipherAP的成对密码group_cipherAP的组密钥ant用于接收基站信标的天线countryAP的国家信息bandwidthAP的带宽vht_ch_freq1这些字段仅用于AP带宽为80和160 MHz的情况用于传输BSS的中心信道频率。对于AP带宽为8080 MHz的情况则使用较低频段的中心信道频率。vht_ch_freq2这些字段仅用于 AP 带宽为 80 80 MHz 的情况用于传输第二段的中心信道频率。esp_wifi_clear_ap_listesp_err_t esp_wifi_clear_ap_list void功能清除上次扫描发现的AP接入点记录。此 API 将释放扫描到的 AP 列表占用的所有内存。如果获取的 AP 列表失败则必须清除 AP 记录否则可能会导致内存泄漏