Other Parts Discussed in Thread: ENERGIA
Tool/software: TI-RTOS
Hello,
I am working on interfacing multiple sensors to TM4C123G microcontroller and read the data via UART and store it in a buffer and transmit the same via USB interface. I am facing issues in reading the data via UART, it just returns nothing when I try to read and blocks my next statements. Following is a snippet of the code,
Void echoFxn(UArg arg0, UArg arg1) { uart_multiple_init(); while(1) { //UART_read(uart1, a, sizeof(a)); // UART_read(uart2, c, sizeof(c)); UART_read(uart3, b, sizeof(b)); UART_write(uart3, b, sizeof(b)); } } static void uart_multiple_init() { //Create a UART with data processing off. UART_Params_init(&uartParams); uartParams.writeDataMode = UART_DATA_BINARY; uartParams.readDataMode = UART_DATA_BINARY; uartParams.readReturnMode = UART_RETURN_FULL; uartParams.readEcho = UART_ECHO_OFF; uartParams.baudRate = 115200; uart = UART_open(Board_UART0, &uartParams); if (uart == NULL) { System_printf("NOT opened"); System_flush(); //Turn on user LED GPIO_write(Board_LED0, Board_LED_ON); System_abort("Error opening the UART"); } UART_Params_init(&uartParams1); uartParams1.writeDataMode = UART_DATA_BINARY; uartParams1.readDataMode = UART_DATA_BINARY; uartParams1.readReturnMode = UART_RETURN_FULL; uartParams1.readEcho = UART_ECHO_OFF; uartParams1.baudRate = 115200; uart1 = UART_open(Board_UART1, &uartParams1); if (uart1 == NULL) { System_printf("UART1 NOT OPEN"); System_flush(); // Turn on user LED GPIO_write(Board_LED0, Board_LED_ON); System_abort("Error opening the UART"); } UART_Params_init(&uartParams2); uartParams2.writeDataMode = UART_DATA_BINARY; uartParams2.readDataMode = UART_DATA_BINARY; uartParams2.readReturnMode = UART_RETURN_FULL; uartParams2.readEcho = UART_ECHO_OFF; uartParams2.baudRate = 115200; uart2 = UART_open(Board_UART2, &uartParams2); if (uart2 == NULL) { System_printf("UART2 NOT OPEN"); System_flush(); //Turn on user LED GPIO_write(Board_LED0, Board_LED_ON); System_abort("Error opening the UART"); } UART_Params_init(&uartParams3); uartParams3.writeDataMode = UART_DATA_BINARY; uartParams3.readDataMode = UART_DATA_BINARY; uartParams3.readReturnMode = UART_RETURN_FULL; //uartParams3.readEcho = UART_ECHO_OFF; uartParams3.baudRate = 115200; // uartParams.readMode = UART_MODE_CALLBACK; // uartParams.readCallback = readCallback; uart3 = UART_open(Board_UART3, &uartParams3); if (uart3 == NULL) { System_printf("UART3 NOT OPEN"); System_flush(); //Turn on user LED GPIO_write(Board_LED0, Board_LED_ON); System_abort("Error opening the UART"); } }
I request someone to help me on this, I need atleast one UART to receive the data, so that I can solve other UART receive.