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.

[参考译文] UART -与两个器件通信

Guru**** 2590600 points
Other Parts Discussed in Thread: CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/607371/uart---communication-with-two-devices

Thread 中讨论的其他器件:CC2650

您好!

我一直在尝试 通过 UART 实现与2个不同器件的通信。 为此、我尝试使用相同的 UART 与这两者进行通信、但没有取得很大的成功、因为一个工作正常、另一个不喜欢。 我正在阅读如何实现两个 UART、因为我知道 cc2650只有1个、我知道我需要关闭其中一个才能启动另一个。 问题是、我需要更改板级配置文件以包含用于不同引脚的另一个 UART。 我这么做了、我注意到该变量"CC2650DK_5n_UARTCOUNT"始终保持为1、而不是2、这是我所需要的。

CC2650DK_5XD.h

/* UART 板*/
#define Board_UART_RX ioID_4. /* P1.7 */
#define Board_UART_TX ioID_3. /* P1.9 */

#define Board_UART_RX1 ioID_12. /* P1.7 */
#define Board_UART_TX1 ioID_11. /* P1.9 * 

#define Board_UART CC2650DK_5n_UART0
#define Board_UART1 CC2650DK_5n_UART1 
typedef enum CC2650DK_5n_UARTName{CC2650DK_5n_UART0 = 0、CC2650DK_5n_UART1 = 0、CC2650DK_5n_UARTCOUNT}CC2650DK_5n_UARTName; 

 

现 已推出 CC2650DK_5XD

/* UART 对象*/
UARTCC26XX_Object uartCC26XX 对象[CC2650DK_5n_UARTCOUNT];
unsigned char uartCC26XXRingBuffer[CC2650DK_5n_UARTCOUNT][32];

// UART 硬件参数结构,也用于分配 UART 引脚*/
const UARTCC26XX_UART20_UART26xx = UARTDUT = UART2620_UART20_UARTDUT
{
baseAddr = UART0_BASE、
powerMngrId = PowerCC26XX_Periph_UART0、
.intNum = INT_UART0_COMB、
.intPriority =~0、
.wiPriority = 0、
txPin = Board_UART_TX、
.rxPin = Board_UART_RX、
ctsPin = PIN_Unassigned、
rtsPin = PIN_Unassigned、
.ringBufPtr = uartCC26XXRingBuffer[0]、
.ringBufSize = sizeof (uartCC26XXRingBuffer[0])
}、
{
baseAddr = UART0_BASE、
powerMngrId = PowerCC26XX_Periph_UART0、
.intNum = INT_UART0_COMB、
.intPriority =~0、
.wiPriority = 0、
txPin = Board_UART_TX1、
.rxPin = Board_UART_RX1、
ctsPin = PIN_Unassigned、
rtsPin = PIN_Unassigned、
.ringBufPtr = uartCC26XXRingBuffer[0]、
.ringBufSize = sizeof (uartCC26XXRingBuffer[0])
}
};

/* UART 配置结构*/
const UART_Config UART_CONFIG[]={
{
.fxnTablePtr =&UARTCC26XX_fxnTable、
.object = uartCC26XX 对象[0]、
hwAttrs = uartCC26XXHWAttrs[0]
}、
{
.fxnTablePtr =&UARTCC26XX_fxnTable、
.object = uartCC26XX 对象[0]、
hwAttrs = uartCC26XXHWAttrs[0]
}、
{NULL、NULL、NULL}
};

您知道我遗漏了什么吗? 当使用简单 RTOS 时、我会将其添加到 BLE 程序中。 谢谢你。

此致、

米格尔·维埃拉

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    传感器控制器中有 UART 仿真器、我建议您将其用作第二个 UART 连接、而不是在两个 UART 引脚定义之间更改引脚。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复、
    但我已经尝试使用传感器控制器、但没有成功、我按照传感器控制器中的示例、使用器件来查看 realTerm 中的字符、但没有任何内容(可能是我做了错误的事情)。 但除此之外、您知道我需要在板级配置文件中更改什么、还是需要一个更好的示例来使用传感器控制器测试 UART 吗?

    此致、
    米格尔·维埃拉
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    传感器控制器中只有一个 UART 仿真器示例、其他示例则没有。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Yikai、

    我尝试了传感器控制器的示例、但它无法正常工作。

    //启动 UART 仿真器任务
    scifExecuteTasksOnceNbl (BV (SCIF_UART_MOSDER_TASK_ID);
    
    //启用波特率生成
    scifUartSetBaudRate (9600);
    
    //启用 RX
    scifUartSetRxEnableReqIdleCount (1);
    scifUartRxEnable (1);
    
    //主循环
    while (1){
    
    //回送收到的任何字符
    while (scifUartGetRxFifoCount()){
    scifUartTxPutChar ((char) scifUartRxGetChar ());
    PIN_setOutputValue (ledPinHandle、Board_LED0、!PIN_getOutputValue (Board_LED0));
    }
    } 

    我将此代码添加到有关 UART 回波示例的主任务中。 什么也不运行、您能告诉我我出了什么问题吗? 谢谢你。

    此致、

    米格尔·维埃拉