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.

[参考译文] LAUNCHXL-CC1310:cc1310无法接收发送给它的数据

Guru**** 2482145 points
Other Parts Discussed in Thread: CC1310

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1239074/launchxl-cc1310-cc1310-is-not-able-to-receive-the-data-sent-to-it

器件型号:LAUNCHXL-CC1310
主题中讨论的其他器件:CC1310

大家好、  

你好。 我是代表客户发布此查询的。

"我正在使用 cc1310 launchpad 电路板通过 UART 发送和接收数据包。 我能够成功发送 UART 消息。 但是、由于某种原因、cc1310无法接收发送给它的数据。

cc1310 => cc1310

uart_params.baudrate = TI_UART_CONF_BAUT_RATE;
uart_params.readMode = uart_mode_callback;
uart_params.writeMode = UART_MODE_BLOCKING;
uart_params.readCallback = uart0_cb;
uart_params.readDataMode = uart_data_text;
uart_params.readReturnMode = UART_RETURN_NEWLINE;
uartParams.readEcho = uart_echo_off;

这是 UART 的配置参数

我还检查了 cc1310向 Nucleo 板发送数据。 Nucleo 板按预期接收了 UART 数据。 以使 cc1310无线电能够通过 UART 发送数据。

我唯一感到奇怪的是、cc1310无线电在接收 Rx 引脚中的数据时未调用回调函数

我查看了论坛。 解决方案的大多数方法是校正读取模式

尽管我设置了该配置参数、但 仍然无法正常工作"

感谢您的支持。 非常感谢您的帮助。

此致、  

马尔文  

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

    尊敬的 Marvin:  

    请告诉客户调试 RX 器件。  

    要检查的事项

    代码是否滞留在未调用 UART_READ 的某处?

    2.是否有 UART 操作返回错误?

    UART 引脚是否已连接、是否确实连接了 UART RX 引脚?

    此致、

    SID

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

    尊敬的 Siddanth:  

    感谢您的答复。 请查看我们的客户的反馈。

    代码是否滞留在未调用 UART_READ 的某处?

    回应: 我检查了这部分。 在主循环中、有一个 while 循环保持运行并检查 RECEIVED_DATA 缓冲区、因此代码在调用 UART_READ 之前不会卡在任何位置。 我确保在循环开始之前调用 UART_READ。

    2.是否有 UART 操作返回错误?

    响应:不、没有 UART 操作返回错误。

    UART 引脚是否已连接、是否确实连接了 UART RX 引脚?

    响应:是的、我检查了配置 UART_Tx 和 UART_Rx 引脚的 CC1310_LAUNCHXL.c。 我连接在右侧引脚。

    此外、我还尝试了阻断模式。 在阻塞模式下、代码会卡在 UART_READ 指令中。 UART_Rx 引脚上的数据似乎没有存储在 FIFO 缓冲区中。

    另外,我想问一下 UART.h 文件参考中是否有一句话,即 uart_read()是一个 在启用中断的情况下从 UART 读取数据的函数。  我是否必须启用中断?

    另外、我注意到、当我打开应该接收 UART_DATA 的 cc 无线电、并将 Rx_pin 直接连接到接地端时、它会调用回调函数并打印为空(即不显示任何内容)。

    感谢您的支持。 非常感谢您的帮助。

    此致、  

    马尔文  

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

    尊敬的 Marvin:

    我测试了一个快速示例、以在一个器件上运行 UART 写入、在另一个器件上运行 UART 读取。 看起来是有效的。  

    对于写入:

    1.导入 uartecho 示例并将其重命名为 uartwrite。  

    2.在 CC1310_LAUNCHXL.h 中修改这些行

    /* UART Board */
    #define CC1310_LAUNCHXL_UART_RX IOID_2 /* RXD */
    #define CC1310_LAUNCHXL_UART_TX IOID_22 /* TXD */

    这将使我们能够从 Putty/Teraterm 端子接收到电路板中、然后在引脚 DIO_22上接收到 TX。  

    3.构建项目并将其刷写到设备中。  

    对于读取:  

    1.  导入 uartecho 示例并将其重命名为 uartecho。

    2.修改 CC1310_LAUNCHXL.h 中的这些行

    /* UART Board */
    #define CC1310_LAUNCHXL_UART_RX               IOID_22          /* RXD */
    #define CC1310_LAUNCHXL_UART_TX               IOID_3          /* TXD */

    这样、我们就可以从引脚 DIO_22接收到电路板中、然后将接收到的数据发送到 putty/Teraterm 终端。

    3.构建项目并将其刷写到设备中。  

    现在、使用跳线将读取设备上的 DIO_22物理连接到写入设备上的 DIO_22。  

     

    看您是否写入写入写入写入设备的 Putty 终端。 我们可以看到数据也显示在读取设备的终端上。  

    此致、

    SID

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

    尊敬的 Siddanth:  

    感谢您的答复。 请查看我们的客户的反馈。

    "我想让您知道、通过将 UART_Rx 引脚从 IOD2更改为 IOD22、可以解决 UART 接收的问题。
    示例代码 uartecho 按预期运行、在更改 UART_Rx 引脚之后、我的代码也可以正常运行。
    我想知道为什么它可以作为 UART_Rx 与 IOD2一起使用、但不能与 IOD2一起使用?
    如果您能告诉我、我将不胜感激。 当我将来使用 UART.h API 时、这对我来说会很有帮助。"

    感谢您的支持。 非常感谢您的帮助。

    此致、  

    马尔文  

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

    您好!

    它也应该与该组件配合使用。 我只是对它进行了测试。  在这种情况下、写入 LaunchPad 的 DIO_3 (TX)应连接到 读取 LaunchPad 的 DIO_2 (RX)。  

    DIO_3和 DIO_2默认路由到 XDS UART、该 XDS 允许 Launchpad 串行连接到 PC 主机上的终端。  

    此致、

    SID