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);
}