Other Parts Discussed in Thread: CC2650
Tool/software: TI-RTOS
Hi all,
I am trying to receive packets from a PC over UART using a CC2650.
The issue I am facing is that the RX UART event triggered only once after the UART declaration and seems as that UART_read is a blocking method
my code:
after the code expose below I am able to receive via UART from a PC only once. I tried adding to UART_read() inside the callback but no luck.
Are there another solution instead of a blocking method and use a non-blocking UART for receiving?
for example a fully interruption/event RX. no call the UART_read() to just read and simulate a interruption
Thanks
void UartReadCallback(UART_Handle handle, void *rxBuf, size_t size) // Gets never called.
{
tx_buf = *((uint8_t*) rxBuf);
UART_write(uart, rxBuf, sizeof(size));
UART_read(uart, &rxBuf, sizeof (rxBuf));
}
Void UART_Config()
{
// Initialize application
SimpleBLEPeripheral_init();
UART_init();
UART_Params_init(&uartParams);
uartParams.writeDataMode = UART_DATA_BINARY;
uartParams.writeMode = UART_MODE_BLOCKING;
uartParams.readMode = UART_MODE_CALLBACK;
uartParams.readCallback = UartReadCallback;
uartParams.readReturnMode = UART_RETURN_NEWLINE;
uartParams.readEcho = UART_ECHO_OFF;
uartParams.baudRate = 9600;
uart = UART_open(Board_UART0, &uartParams);
if (uart == NULL) {
System_abort("Error opening the UART");
}
void *rxBuf;
UART_read(uart, &rxBuf, sizeof (rxBuf));
}