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.

[参考译文] LAUNCHCC3235MOD:LAUNCHCC3235MOD 收发器模式

Guru**** 2390755 points
Other Parts Discussed in Thread: CC3235S

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1051513/launchcc3235mod-launchcc3235mod-transceiver-mode

器件型号:LAUNCHCC3235MOD
主题中讨论的其他器件:CC3235S

您好!  

我使用两个 CC3235S LaunchPad 开发5GHz 物联网模块。

使用 CCS 10.4和 Simplelink SDK、我选择使用收发器模式作为

我不需要更高层的协议。  

我将使用以下套接字函数:

sl_Socket ()

SL_SetSockOpt ()

sl_Recv ()

sl_close ()

用于原始数据接收

sl_Socket ()

SL_SetSockOpt ()

SL_Send ()

sl_close ()

用于原始数据传输。

现在、我只能进行单向传输:一个 LaunchPad 传输数据包、另一个 LaunchPad 仅接收数据包。

我无法同时使 Tx 和 Rx 功能有效。

如何打开插座或插座以实现双向传输?

如果有任何意见可以帮助我实现双向传输、我将不胜感激。

BRS、

J.Y. Kim   

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

    收发器插座是双向的、支持发送和/或接收。

    这同时意味着什么? 您尝试使用插座的具体情况如何?故障是什么?

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

    我不得不说、我对老式裸机工程师多线程不是很好。
    我要做的是:
    -模块处于闲置状态,等待 RF 数据包或 UART 数据串,
    -当来自 UART 的数据字符串出现时,我想在解析之后传输它。
    -当射频数据包出现时,我想处理它并返回
    我从 SDK 获取的示例代码(network_terminal_CC3235S_LAUNCHXL_tirtos_ccs)
    使用多线程、这让我感到困惑。
    例如,当我调用 sl_Recv()时,它直到得到一个数据包才会返回。 (似乎被阻止)
    但是、如果没有接收到的数据、我希望它返回、以便我可以检查 UART 数据。 我该怎么做?
    同样,当我调用 UART 读取函数(如 UART_radPolling())时,我希望它能够运行
    如果没有数据、则返回、但它在那里挂起、直到它获得一个字节。

    我的代码具有以下结构:

    在 mainThread()下

    //初始化 SPI、UART、wifi 等资源后

    while (1)

      lRetVal = GetCmd ((char *)&strBuffer[0]、100);=>它在那里挂起、直到它获得一条数据行
      if (lRetVal = 0)
      {//无 UART 数据
      //我调用 sl_Socket ()、sl_SetSockOpt ()、sl_Redv ()和 sl_Close ()=>当没有 UART 数据时不会出现这里

      }
      其他
      {//接收到 UART 数据
        //解析后,我调用 sl_Socket ()、sl_SetSockOpt ()、sl_Send ()和 sl_Close ()=>这很好
      }
      返回(0);

    我是否有任何示例代码可用于解决此问题?

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

    您可以将套接字设置为非阻塞(sl_SetSockOpt)、然后 sl_Recv 将立即返回、但实现会更加复杂。

    将 UART 设置为 UART_MODE_CALLBACK 时、UART_READ (但不是 UART_READPolling)不会阻止、接收到的数据将通过中断上下文中的回调进行。

    在不更改配置的情况下、GetCmd 将一直保持不动、直到在 UART 上接收到某个内容。  

    它不会到达接收。

    最简单的方法是使用2个任务:

     您应首先创建原始套接字(如果需要、可使用+setSockOpt)。

    然后创建第二个线程以接收数据(在此线程中、您将在 while 循环中调用 sl_Recv)。

    在第一个线程上、您可以等待 UART (例如使用 GetCmd)并使用 sl_Send 发送传入数据。

    sl_Send 和 sl_Recv 应使用之前创建的相同套接字。

    BR、

    Kobi  

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

    尊敬的 Kobi:

    感谢您的评论、我可以继续、我正在研究解析器部分。

    我将更深入地了解单个任务编程和多线程之间的差距。  

    再次感谢。

    此致、

    JY