全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 控制/MCU >

乐鑫ESP32调试Wi-Fi常用调试API

时间:2025-02-07 18:10

人气:

作者:admin

标签: API  ESP32  乐鑫 

导读:在使用ESP32调试Wi-Fi功能时,由于场景和各种因素的影响,难免会遇到各种连接不上,Wi-Fi断连等问题。下面介绍一些API,方便新手调试Wi-Fi时更好的定位并解决问题。常见问题1、ESP32进行...

在使用ESP32调试Wi-Fi功能时,由于场景和各种因素的影响,难免会遇到各种连接不上,Wi-Fi断连等问题。

下面介绍一些API,方便新手调试Wi-Fi时更好的定位并解决问题。

常见问题

1、ESP32进行Wi-Fi连接时,如何判断失败原因?

在ESP-IDF 4.0以上的版本,可以在Wi-Fi断连事件处理中加入以下代码,从而通过错误码来判断连接失败的原因。

be7072ba-e53b-11ef-9434-92fbcf53809c.jpg

当回调函数接收到WIFI_EVENT_STA_DISCONNECTED事件时,可以通过结构体wifi_event_sta_disconnected_t的变量reason获取到失败原因。

常见的错误码

be89e0c4-e53b-11ef-9434-92fbcf53809c.jpg

2、Wi-Fi 在断连后如何自动重连?

在收到WIFI_EVENT_STA_DISCONNECTED事件时,调用esp_wifi_connect API,具体代码如下:

be9bc712-e53b-11ef-9434-92fbcf53809c.jpg

3、ESP32 Wi-Fi发射功率最高值是多少?如何调整Wi-Fi的发射功率?

ESP32的Wi-Fi功率输出最高可以配置为20dBm。高功率输出会对电池寿命和Wi-Fi信号稳定性产生影响,因此在选择功率输出水平时,需要根据具体的应用场景和要求进行权衡和选择。

可通过menuconfig配置中,改变ESP_PHY_MAX_WIFI_TX_POWER的值来调整发射功率,配置项如下:

bead9b9a-e53b-11ef-9434-92fbcf53809c.jpg

或者在代码中调用esp_wifi_set_max_tx_power() 这个API来设置调整。

4、连接Wi-Fi,打印bcn_timeout, ap_probe_send_start是什么情况?

默认设置下,ESP32默认六秒未收到AP的beacon帧,就会提示bcn_timeout。造成这个问题的原因有可能会有以下几点:

(1)内存资源不足。

ESP32_WIFI_MGMT_SBUF_NUM不够(log中会打出“esf_buf:t=8, l=beacon_len, …”这样的Error)。如果内存不够,可在收到disconnect event时打出heap大小来排查。

(2)AP未发出beacon帧。可通过抓包AP的beacon帧来排查。

(3)AP Rssi值太低。在复杂环境下 Rssi 值较低时,可能导致 STA 收不到 beacon帧,可通过调用esp_wifi_sta_get_ap_info()

(4)硬件原因。收包性能太差。

注意:在出现bcn_timeout时,STA会尝试发送5次Probe Request,如果AP回Probe Reponse,就保持连接;如果AP未回复,STA发送Disconnect事件,并断开连接。

5、如果环境中存在多个相同ssid/password时,能否默认选择信号最好的AP连接?

默认ESP32会连接扫描到的第一个符合的AP,并不会自动选择信号值最强的AP。如果要连接最佳AP,需要在配置station时,添加信号强度优先配置,具体配置代码如下:

beb56906-e53b-11ef-9434-92fbcf53809c.jpg

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信