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.

[参考译文] RTOS/LAUNCHXL-CC2650:RX + UART + LAUNCHXL-CC2650存在问题

Guru**** 2578855 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/805380/rtos-launchxl-cc2650-problem-with-rx-uart-launchxl-cc2650

器件型号:LAUNCHXL-CC2650
Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI-RTOS

大家好、


我使用的是 CC2650LaunchPad、我想测试 UART。 我传输的数据很好、但我不接收数据。 我是联合 Tx (DIO3)和 RX (DIO2)。 我的代码会传输、但我从未接收到数据。
这是我的代码、UART 在 main 中配置、一个线程(TxFxn)定期传输数据、并且有一个与传输相关的回调函数(uartTxCallback)和一个与接收相关的回调函数(uartRxCallback)。

总之:传输正常、但我从不接收数据。

有人能告诉我我我的代码有什么问题吗?

非常感谢。  

#include

/* XDCtools 头文件*/
#include
#include

/* BIOS 头文件*/
#include
#include
#include

/* TI-RTOS 头文件*/
#include
#include

uint32 sleepTickCount;


/*示例/板头文件*/
#include "Board.h"

#define TASKSTACKSIZE (768)

Task_Structtask0Struct;
char task0stack[TASKSTACKSIZE];

字符 uartTxBuffer[2]={'a'、'\n'};
字符 uartRxBuffer[2]={0、0};

/*任务和回调函数之间共享的驱动程序句柄*/
UART_Handle UART;
UART_Params uartParams;


/*
*回调函数以在回调模式下使用 UART。 它什么也不做。
*
void uartTxCallback (UART_Handle handle、void *buf、size_t count){
UART_READ (UART、uartRxBuffer、2);
INT A = 0;
返回;

/*回调函数以在回调模式下使用 UART。 它什么也不做。
*
void uartRxCallback (UART_Handle handle、void *buf、size_t count){

INT A = 0;
返回;

/*
*==== conversionStartFxn =====
*此函数的任务是静态创建的。 请参阅工程的.cfg 文件。
*
空 TxFxn (UARg arg0、UARg arg1){

for (;;)


UART_WRITE (UART、uartTxBuffer、2);

Task_sleep (sleepTickCount);

/*
*==== main ====
*
int main (void){
Task_Params taskParams;

/*呼叫板初始化函数*/
Board_initGeneral();
Board_initUART();

UART_PARAMS_INIT (uartParams);
uartParams.baudrate = 115200;
uartParams.writeDataMode = UART_DATA_BINARY;
uartParams.writeMode = UART_MODE_CALLBACK;
uartParams.writeCallback = uartTxCallback;
uartParams.readDataMode = UART_DATA_BINARY;
uartParams.readMode = UART_MODE_CALLACK;
uartParams.readCallback = uartRxCallback;
uartParams.readReturnMode = UART_return_full;
UART = UART_OPEN (Board_UART0、uartParams);

sleepTickCount = 100000 / Clock_tickPeriod;

/*构造 BIOS 对象*/
Task_Params_init (&taskParams);
taskParams.STACKSIZE = TASKSTACKSIZE;
taskParams.stack =_task0Stack;
Task_construct(&task0Struct,(Task_FuncPtr) TxFxn、
taskParams、NULL);

System_printf ("启动 ADC 连续采样示例\n"
"系统提供商已设置为 SysMin。 停止目标以查看任何 SysMin "
" ROV 中的内容。\n");

/* SysMin 仅在您调用 flush 或 exit 时才会打印到控制台*/
system_flush();

/*启动 BIOS */
BIOS_start();

返回(0);

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

    software-dl.ti.com/.../index.html

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

    你好,Siri!

    非常感谢您的 anweare。  

    我已经查看过 uartecho 的示例、我遇到了相同的问题。 UART 发送但不接收。 我已连接 CC2650LP 中的引脚 Tx (DIO3)和 Rx (DIO2)、但就好像它们未连接一样。

    请检查我的代码吗? 我认为我的问题是引脚设置、也许是板...  

    此致 、坦克又重又重。 最好的农家  

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

    大家好!!!

    我已经解决了这个问题!!!


    问题是 RX 引脚通过跳线与 LaunchPad 中的另一个电子元件连接。 只需拆下跳线 RXD、一切都好!!!

    非常感谢。 此致