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.

[参考译文] CC3230S:CC3230S

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/969309/cc3230s-cc3230s

器件型号:CC3230S
主题中讨论的其他器件:UNIFLASH

SL_WlanPolicySet 模式本身配置为在自动模式下建立连接、但未建立连接
在上电时调用以下函数
状态= sl_DeviceSet (sl_device_General、sl_device_General_persistent、sizeof (_u8)、(_u8*)(&persistent));
if (状态)

/*错误*/

状态= sl_WlanPolicySet (sl_WLAN_policy_connection、sl_WLAN_connection_policy (1、0、0)、NULL、0);

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

    您好!

    您是否在设备内存储了连接配置文件?

    1月

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

    您好!

    我使用了以下 API 来存储配置文件

    index = sl_WlanProfileAdd((signed char*) SsidName、ssidLen、macaddr、&secParams、NULL、 15.0);
    display_printf (display、0、0、"索引-%d"、Index);

    坦克和此致、

    Sandee.M

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

    您好!

    如果您的代码能够进行 AP 模式连接、请确保在器件网页上成功存储了连接配置文件。

    我不确定您的代码是如何设计的。 也许您可以从网络终端示例或 WiFi 配置示例开始

    BTW... 您是否在存储配置文件后重新启动 NWP? 为什么要在代码中禁用持久性设置?

    1月

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

    您好、Sandeep、

    您是否已将器件设置为 STA 模式?

    此外、您是否看到任何表明连接尝试的 Wi-Fi 事件、或者是否似乎没有尝试执行自动连接?

    如果您使用 CC3230扫描 Wi-Fi AP、扫描结果中是否列出了 SSID?

    此致、

    Michael

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

    您好、Michel、

    我使用 sl_WlanConnect() API 直接连接到 AP

    我能够扫描、可以看到扫描结果中列出的 SSID

    SSL_WlanPolicySet 返回 0
    扫描结果计数报告1。

    从 sl_WlanGetNetworkList 中显示的 SSID 名称  SSID:sandeep。

    SL_WlanPolicyGet 结果

    pPolicy:1.

    pVal:113.

    pVallen:1.

    重估值:0。

    SL_WlanProfileGet 结果

    姓名:Sandeep。

    姓名:7.

    返回值 :2.

    优先级:15.

    MacID:34:3:DE:11:93:3c。

    坦克和此致、

    Sandee.M

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

    您好!

    API sl_WlanConnect()是手动连接。 在这种情况下、连接配置文件和连接策略未使用。

    1月

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

    您好、Jan、

    我进行了设置以在 STA 模式下运行  

    SSL_WlanPolicySet 返回 0

     但扫描结果 Count rettns:-2073。

    谢谢、此致、

    Sandee.M

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

    您好!

    错误 -2073的含义是 SL_ERROR_WLAN_GET_NETWORK_LIST_EAGAIN。

    如果未正确设置扫描策略或过早调用 API,并且 WLAN 扫描值尚未就绪,则返回此错误。

    1月

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

    您好、Jan、

    我添加了睡眠声明、它工作正常、但无法在自动模式下加入网络。

    是否很难启用自动模式、或者我们需要配置自动模式?

    谢谢、此致、

    Sandee.M

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

    您好、Jan、

    状态= sl_WlanPolicyGet (sl_WLAN_policy_connection、&pPolicy、&pVal、&pVallen);
    display_printf (display、0、0、"pPolicy:%d.\r\n\r\n、pPolicy);
    display_printf (display、0、0、"pVal:%d.\r\n\r\n、pVal);
    display_printf (display、0、0、"pValLen:%d.\r\n\r\n、pValLen);
    display_printf (display、0、0、"状态:%d.\r\n\r\n、状态);
    if (pPolicy & sl_WLAN_connection_policy (1、0、0、0))

    printf ("连接策略设置为 auto ");

    pPolicy:1.

    pVal:220.

    pVallen:1.

    状态:0。

    车床值的含义是什么?

    谢谢、此致、

    Sandee.M

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

    您好!

    自动连接模式与连接配置文件的使用非常简单、甚至比手动连接的使用更容易。 我不知道你犯了什么错误。

    您需要:

    • 设置连接策略
    • 设置连接配置文件
    • 设置 STA 模式(如果尚未完成此操作)
    • NWP 重新启动后、您将连接到网络...

    1月

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

    您好、Jan、

    如果需要进行任何更改、请按照以下所述编写代码

    状态= sl_Start (NULL、NULL、NULL);
    display_printf (display、0、0、" role -=%d"、status);
    if (Role_STA!=状态)

    display_printf (display、0、0、"失败");
    //角色错误

    状态= SL_WlanSetMode (Role_STA);
    display_printf (display、0、" sl_WlanSetMode--=%d"、status);
    状态= sl_Stop (sl_stop_timeout);

    /*主机驱动程序启动网络处理器*/
    if (sl_Start (NULL、NULL、NULL)< 0){
    /*错误:无法初始化 WiFi */
    while (1);

    状态= SL_WlanPolicySet (SL_WLAN_POLICE_SCAN、SL_WLAN_SCAN_POLICE_POLICE_1、1)、
    (_u8*)&intervalInSeconds、sizeof (intervalInSeconds));
    display_printf (display、0、0、" sl_WlanPolicySet-%d"、status);
    if (status)

    /*错误*/

    睡眠(5);

    _i16 resultsCount = sl_WlanGetNetworkList (0、30、&netEntry[0]);
    display_printf (display、0、0、"resultsCount:%d.\r\n\r\n、resultsCount);

    for (i =0;<resultsCount;i++)

    display_printf (display、0、0、"SSID:%s.\r\n\r\n、netEntry [0].ssid);

    //状态= sl_WlanPolicySet (sl_WLAN_policy_connection、sl_WLAN_connection_policy (1、1、0、1)、NULL、0);
    状态= sl_WlanPolicyGet (sl_WLAN_policy_connection、&pPolicy、&pVal、&pVallen);
    display_printf (display、0、0、"pPolicy:%d.\r\n\r\n、pPolicy);
    display_printf (display、0、0、"pVal:%d.\r\n\r\n、pVal);
    display_printf (display、0、0、"pValLen:%d.\r\n\r\n、pValLen);

    if (pPolicy & sl_WLAN_connection_policy (1、0、0、0))

    printf ("连接策略设置为 auto ");

    /* secParams.Key =(signed char *) security_key;
    secParams.KeyLen = strlen ((const char *) secParams.Key);
    secParams.Type = SECURITY_TYPE;*/
    //Index = sl_WlanProfileAdd((signed char*)SSID、7、MacAddr1、&secParams、NULL、 15.0);
    //Display_printf (display、0、0、"Index--%d"、Index);

    状态= sl_WlanProfileGet (索引、名称、&NameLength、macaddr、&SecParams、 SecExtParams、优先级(&S);

    display_printf (display、0、0、"名称:%s\r\n、名称);
    display_printf (display、0、0、"名称:%d.\r\n\r\n、NameLength);
    display_printf (display、0、0、"状态:%d.\r\n\r\n、状态);
    display_printf (display、0、0、"priority:%d.\r\n\r\n、priority);
    sprintf (mac_str、"%0x:%0x:%0x:%0x:%0x:%0x"、macaddr[0]、macaddr[1]、macaddr[2]、macaddr[3]、macaddr[4]、macaddr[5]);
    display_printf (display、0、0、"MacID:%s\r\n、mac_str);
    if (状态)

    /*错误*/

    此致、

    Sandee.M

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

    您好!

    我不确定您希望通过该代码实现什么。 您的代码执行以下操作:

    • 将 MODE 设置为 STA
    • 设置 WLAN 扫描策略
    • 列出邻居 WLAN
    • 设置连接策略
    • 读取连接配置文件的内容

    BTW... 如果需要、也可以通过 Uniflash 软件设置连接策略。

    1月

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

    您好、Jan、

    我不熟悉这一点、我的代码中存在任何问题、请给出建议  

    请告诉我该流程

    我已经存储了我的配置文件。

    是否每次都需要添加配置文件?

    然后调用自动模式?

    此致、

    Sandee.M

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

    在主函数中、我调用以下 API

    状态= sl_WlanPolicySet (sl_WLAN_policy_connection、sl_WLAN_connection_policy (1、0、0)、NULL、0);

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

    您好!

    我在您的代码中看不到任何问题。

    连接策略、扫描策略和连接配置文件是持久的,除非您不禁用此功能。 这意味着、一旦您使用 SL_ API 将设置保存到 sFlash 中、就不需要再次保存它们。 在 sFlash 中保存设置并启动/重新启动 NWP 后、器件会根据设置的配置文件自动连接到网络。

    我不知道为什么你不能做到这一点。 是否已禁用 sl_device_General_persistent 的闪存设置持久性?

    1月

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

    您好、Jan、

    这就是我要做的  

    状态= sl_DeviceSet (sl_device_General、sl_device_General_persistent、sizeof (_u8)、(_u8*)(&persistent));
    if (状态)

    /*错误*/

    状态= sl_WlanPolicySet (sl_WLAN_policy_connection、sl_WLAN_connection_policy (1、0、0)、NULL、0);
    display_printf (display、0、0、"Status_policy:%d.\r\n\r\n、Status);

    状态= sl_Start (NULL、NULL、NULL);
    display_printf (display、0、0、" role -=%d"、status);
    if (Role_STA!=状态)

    display_printf (display、0、0、"失败");
    //角色错误

    状态= SL_WlanSetMode (Role_STA);
    display_printf (display、0、" sl_WlanSetMode--=%d"、status);
    状态= sl_Stop (sl_stop_timeout);

    /*主机驱动程序启动网络处理器*/
    if (sl_Start (NULL、NULL、NULL)< 0){
    /*错误:无法初始化 WiFi */
    while (1);

    状态= SL_WlanPolicySet (SL_WLAN_POLICE_SCAN、SL_WLAN_SCAN_POLICE_POLICE_1、1)、
    (_u8*)&intervalInSeconds、sizeof (intervalInSeconds));
    display_printf (display、0、0、" sl_WlanPolicySet-%d"、status);
    if (status)

    /*错误*/

    睡眠(5);

    _i16 resultsCount = sl_WlanGetNetworkList (0、30、&netEntry[0]);
    display_printf (display、0、0、"resultsCount:%d.\r\n\r\n、resultsCount);

    for (i =0;<resultsCount;i++)

    display_printf (display、0、0、"SSID:%s.\r\n\r\n、netEntry [0].ssid);

    //状态= sl_WlanPolicySet (sl_WLAN_policy_connection、sl_WLAN_connection_policy (1、1、0、1)、NULL、0);
    状态= sl_WlanPolicyGet (sl_WLAN_policy_connection、&pPolicy、&pVal、&pVallen);
    display_printf (display、0、0、"pPolicy:%d.\r\n\r\n、pPolicy);
    display_printf (display、0、0、"pVal:%d.\r\n\r\n、pVal);
    display_printf (display、0、0、"pValLen:%d.\r\n\r\n、pValLen);

    if (pPolicy & sl_WLAN_connection_policy (1、0、0、0))

    printf ("连接策略设置为 auto ");

    /* secParams.Key =(signed char *) security_key;
    secParams.KeyLen = strlen ((const char *) secParams.Key);
    secParams.Type = SECURITY_TYPE;*/
    //Index = sl_WlanProfileAdd((signed char*)SSID、7、MacAddr1、&secParams、NULL、 15.0);
    //Display_printf (display、0、0、"Index--%d"、Index);

    状态= sl_WlanProfileGet (索引、名称、&NameLength、macaddr、&SecParams、 SecExtParams、优先级(&S);

    display_printf (display、0、0、"名称:%s\r\n、名称);
    display_printf (display、0、0、"名称:%d.\r\n\r\n、NameLength);
    display_printf (display、0、0、"状态:%d.\r\n\r\n、状态);
    display_printf (display、0、0、"priority:%d.\r\n\r\n、priority);
    sprintf (mac_str、"%0x:%0x:%0x:%0x:%0x:%0x"、macaddr[0]、macaddr[1]、macaddr[2]、macaddr[3]、macaddr[4]、macaddr[5]);
    display_printf (display、0、0、"MacID:%s\r\n、mac_str);
    if (状态)

    /*错误*/

    /* if (strlen(Name)!= 0){
    secParams.Key =(signed char *) security_key;
    secParams.KeyLen = strlen ((const char *) secParams.Key);
    secParams.Type = SECURITY_TYPE;
    Display_printf (display、0、0、"sectionParams.KeyLen:%d.\r\n\r\n、secParams.KeyLen);
    RET = sl_WlanConnect ((signed char*)名称、strlen ((const char*)名称)、
    空,&secParams,NULL);

    *
    /* if (strlen(SSID)!= 0){
    secParams.Key =(signed char *) security_key;
    secParams.KeyLen = strlen ((const char *) secParams.Key);
    secParams.Type = SECURITY_TYPE;
    Display_printf (display、0、0、"sectionParams.KeyLen:%d.\r\n\r\n、secParams.KeyLen);
    RET = sl_WlanConnect ((signed char*) sid、strlen ((const char*) sid)、
    空,&secParams,NULL);
    }*/
    //状态= sl_WlanProfileDel (sl_WLAN_DEL_ALL_PROFILES);

    以下是终端上的显示"I am gettng"

    角色--= 0
    SL_WlanSetMode--= 0
    SL_WlanPolicySet--0
    结果计数:1.

    SSID:sandeep。

    pPolicy:1.

    pVal:255。

    pVallen:1.

    姓名:Sandeep。

    姓名:7.

    状态:2.

    优先级:15.

    MacID:34:3:DE:11:93:3c。

    请建议  

    谢谢、此致、

    Sandee.M

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

    您好!

    如何设置您的 persistent 变量? 如果变量设置为0、则禁用系统持久配置。 在 NWP 重新启动之前完成的所有配置都将丢失。

    1月

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

     _u8 persistent = 1;

    状态= sl_DeviceSet (sl_device_General、sl_device_General_persistent、sizeof (_u8)、(_u8*)(&persistent));
    if (状态)

    /*错误*/

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

    您好!

    好的、在这种情况下、系统持续配置已启用、该行无效。

    我不确定您的问题可能是什么原因。 请等待 Michael 的其他评论。 也许您可以尝试使用自动+快速连接(1、1、0、0)。

    1月

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

    我无法在论坛中分享该代码吗?

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

    您好!

    您可以使用代码语法荧光笔

    您的代码 

    也可以插入文件。

    1月

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

    e2e.ti.com/.../3704.network.c

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

    e2e.ti.com/.../6177.network.c

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

    e2e.ti.com/.../3884.network.c

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

    您好,Jan,

    我的问题已解决。 MAC ID 不正确

    谢谢、此致、

    Sandee.M

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

    您好!

    好的、太好了。

    1月