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/CC2650:UART RX 输入未触发 UartReadCallback

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

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/602625/rtos-cc2650-uart-rx-input-is-not-triggering-the-uartreadcallback

器件型号:CC2650

工具/软件: TI-RTOS

大家好、

我尝试使用 CC2650通过 UART 从 PC 接收数据包。

我所面临的问题是、RX UART 事件在 UART 声明后仅触发一次、看起来 UART_READ 是一种阻塞方法

我的代码:

在下面显示的代码之后、我只能通过 UART 从 PC 接收一次。 我尝试在回调中添加到 UART_READ(),但不幸运。
是否有其他解决方案替代阻塞方法并使用非阻塞 UART 进行接收?
例如完全中断/事件 RX。 不调用 UART_read()来直接读取和模拟中断

谢谢

void UartReadCallback (UART_Handle handle、void *rxBuf、size_t size)//从未调用。
{
TX_Buf =*((uint8_t*) rxBuf);

UART_WRITE (UART、rxBuf、sizeof (size)));

UART_READ (UART、&rxBuf、sizeof (rxBuf));
}
void UART_Config ()
{
//初始化应用
SimpleBLEPeripheral_init ();

UART_init();
UART_Params_init (&uartParams);
uartParams.writeDataMode = UART_DATA_binary;UART_Parartams_Blocking
;UART_UART_UART_writeMode.UART_UART_UARTInode = UAR
uartParams.readMode = UART_MODE_CALLBACK;
uartParams.readCallback = UartReadCallback;
uartParams.readReturnMode = UART_return_NEWLINE;
uartParams.readEcho = UART_ECHO_OFF;
uartParams.波特 率= 9600;
UART = UART_open (Board_UART0、&uartParams);

if (UART == NULL){
System_abort ("打开 UART 时出错");
}
void * rxBuf;
UART_read (UART、&rxBuf、sizeof (rxBuf));
} 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、是从任务上下文还是从 main 开始第一次读取? 您使用的是哪个 SDK 版本?