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.

[参考译文] CCS/LAUNCHCC3220MODASF:CC3220电源测量示例中在两种不同用例之间切换的最佳方法

Guru**** 2589280 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/941977/ccs-launchcc3220modasf-best-way-to-switch-between-two-different-use-cases-in-the-cc3220-power-measurement-example

器件型号:LAUNCHCC3220MODASF

工具/软件:Code Composer Studio

您好!

我将基于 CC3220电源测量示例实施简单的固件。 我需要每1分钟在"收发器模式"下传输几个原始数据包。 我只是通过删除示例上的起始横幅选择并将用例强制为"收发器用例"来实现此任务。 当然、固件工作正常。

但是、如果我的器件在外部唤醒(即通过 GPIO)、我还需要以连接方式(例如间歇性连接)传输一些数据包。

因此、已实现的 GPIO 中断例程也可以正常工作、但在不同用例之间切换时遇到了问题。 特别是、间歇性连接模式的首次配置在收发器例程下/之后执行得不好。 实际上,在成功配置启动 wlanconnect()函数后,我遇到了与套接字 ID 相关的错误-2018。 以及其他一些误差。

那么、请说明我如何以正确的方式在两种不同的用例(收发器和间歇性连接、反之亦然)之间切换? 在两种工作模式之间切换时无错误的最佳做法是什么?

是否必须重新启动 MCU?

当 GPIO 中断发生时、这是我不确定的解决方案之一:

GPIO 中断

/*清除 SimpleLink 状态*/

  PowerMeasure_CB.slStatus = 0;

 

  ClockP_Params_init (&lpdsParams);

  PowerMeasure_lpdsHandle = ClockP_create ((ClockP_Fxn)&powerMeasureDoNothing、0、&lpdsParams);

 

 

      PowerMeasure_appData.useCase = UseCase_InterimentlyConnected;    //forced use-case,而不是使用 setUseCase ()

 

 

        /*将设备配置为所选用例*/

        status = configSimplelinkToUseCase ();

      // UART_PRINT ("设备已配置为所选电源管理用例。\n\n");  //R

 

        

        //首次连接到 AP,仅连接用例*/

        if (PowerMeasure_appData.useCase == UseCase_InterimentlyConnected)

        {

            状态= sl_Start (0、0、0);

            status = wlanConnect();

           /*如果用例始终处于连接状态,则保持连接*/

            if (PowerMeasure_appData.useCase == UseCase_InterentlyConnected)

            {

                状态= sl_Stop (sl_stop_timeout);

            }

        }

      // startMeasureBanner();

  }

 

              UART_PRINT ("间歇性连接...\n\n");

              不稳定性 connected();

 

谢谢你。

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

    您好、Riccardo、

    如果您从睡眠模式唤醒、则器件可能尚未完全初始化、并且通常不建议使用较长的中断例程。 最好在 GPIO 应用程序中发布一个信号量、该信号量将运行您正在运行的例程、并有一个任务来处理用例和您正在寻找的特定行为之间的变化。  

    您遇到的错误意味着设备尚未启动。 因此、如果在任务中处理此问题时仍然遇到此问题、请尝试添加延迟、以确保器件有时间在唤醒后再次初始化所有内容。

    Jesu