This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] LAUNCHCC3220MODASF:确定 WiFi 为什么赢#39;t 连接

Guru**** 2582405 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/957284/launchcc3220modasf-determining-why-wifi-won-t-connect

器件型号:LAUNCHCC3220MODASF

您好!  

当尝试连接到 WiFi 网络但未成功时、是否有方法通过状态位判断连接失败是因为 SSID 错误、密码错误? 对于此项目、安全类型是硬编码的、因此永远不会出现需要返回的错误。 同样、一般的"连接失败"也很容易返回、但我们对确定故障原因非常感兴趣。 有什么方法可以做到这一点吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Tim Scott、

    如果在进行 sl_WlanConnect 调用后未能连接到 AP、则应向您报告错误。 请参阅 SDK 中的 errors.h 文件( /source/ti/driver/net/wifi/errors.h)以查看所有可能的 WLAN 相关错误代码。  

    Jesu

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Jeru、

    为了确保我理解您的说法、如果密码有问题、sl_WlanConnect 调用的返回值将是错误编号? 从 errors.h 文件中看、它看起来应该是-2058。

    Tim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jesu、

    我找到的唯一与密码相关的错误返回-2058、但仅当没有提供密码时才会触发。 是否有任何方法可以判断所提供的密码是否只是错误而不是丢失?

    谢谢、

    Tim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Tim、

    我进行了一些挖掘、得出结论、您要求的结果是不可能的。 请参阅 Michael 在另一个论坛上发布的以下帖子:

    您好、
    
    sl_WlanConnect API 旨在持续搜索并尝试连接到提供的 SSID。 发布该 API 后、CC3220将主动探测该 SSID、因此不会返回任何 SSID 不正确的指示、因为 API 无法确定 AP 只是超出范围、无响应、 或者没有匹配的 SSID。
    
    对于错误的密码情况、您应该会持续收到断开事件、因为 CC3220会找到指定的 SSID、尝试连接、但由于访问密钥不正确而无法完成连接。 由于 AP 不会通知连接的器件(本例中为 CC3220)密钥不正确、以帮助防止暴力攻击、因此 CC3220将持续尝试重新连接、并在发生相同的断开事件时失败。
    
    识别这些错误的最佳方法是在您的应用中设置一个超时时间、该超时时间监控被调用的 sl_WlanConnect API 和 CC3220获取的 IP 之间经过的时间。 如果设备在15到30秒等合理的时间长度后未收到 IP、则可以假设 SSID 或密钥不正确。 请参阅 network_terminal 演示中 wlanconnect 函数的实现、以获取示例实现。
    
    如果您需要更多澄清或对将 CC3220连接到 AP 有其他疑问、请告诉我。
    
    此致
    
    、Michael 

    Jesu