乐鑫技术交流
直播中

carey123

10年用户 1521经验值
擅长:可编程逻辑 嵌入式技术
私信 关注
[问答]

用ESP32做热点时,用苹果手机连接模块,为什么在断开时检测不到?

用ESP32做热点时,如果用安卓手机或者电脑连接模块,在断开连接时,模块能检测到安卓手机/电脑断开了。但是用苹果手机连接模块,在断开时,模块好像经常检测不到苹果手机断开了。是通过SYSTEM_EVENT_AP_STADISCONNECTED事件打印调试信息来观察的。
这样导致的问题是,当设置只运行1个STA连接模块时,即使是苹果手机已经关闭了WIFI,其他手机也无法连接模块。
有人遇到过跟我一样的问题吗?
                                                                                                                                                                    

回帖(1)

juju宇哥

2024-6-26 17:30:48
以下是一些建议和可能的解决方案:

1. **检查固件版本**:确保您的ESP32模块运行的是最新的固件版本,以解决可能的已知问题。

2. **检查系统事件处理**:确保您正确地处理了SYSTEM_EVENT_AP_STADISCONNECTED事件。在事件处理函数中添加一些调试信息,以便更好地了解事件的触发情况。

3. **增加超时机制**:如果ESP32在一定时间内没有检测到STA的连接,可以认为STA已经断开。这样,即使苹果手机的断开行为与其他设备不同,ESP32也可以在超时后自动释放STA连接。

4. **尝试其他事件**:除了SYSTEM_EVENT_AP_STADISCONNECTED事件外,还可以尝试使用其他事件,如SYSTEM_EVENT_STA_START或SYSTEM_EVENT_STA_CONNECTED,以检测STA的连接状态。

5. **修改STA连接策略**:如果问题仍然存在,可以考虑修改STA连接策略,允许多个STA设备同时连接ESP32。这样,即使苹果手机的断开行为导致问题,其他设备仍然可以连接到ESP32。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分