请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: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));
}