 
					
				
		
Hello,
I'm currently planning to use the LPUART FreeRTOS driver (fsl_lpuart_freertos.*) from the MCUXpresso SDK, but I've noticed that it is not possible to specify a timeout. This appears to be the case in 2.5.0, which I think is the latest (dated 11th Jan 2019).
For example, inside the function LPUART_RTOS_Send(), there is a call to LPUART_TransferSendNonBlocking(), followed by a call to the FreeRTOS xEventGroupWaitBits(), which is as I might expect. The problem, however, is that a hardcoded value, portMAX_DELAY is passed for the parameter xTicksToWait, which I think means it will wait forever.
Would NXP consider modifying the SDK, providing an extra parameter to LPUART_RTOS_Send() which would allow this wait time to be specified? If xEventGroupWaitBits() then returns with no event bits set, LPUART_RTOS_Send() would call LPUART_TransferAbortSend(), perhaps?
If this change was made, I think similar modifications would also be needed in LPUART_RTOS_Receive().
Many Thanks,
Andrew.
 
					
				
		
 BlackNight
		
			BlackNight
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		Hi Andrew,
you might have a look at the files in mcuoneclipse/uart.c at master · GitHub
where it implements a simple non-blocking UART driver with FreeRTOS.
I hope this helps,
Erich
Hiii I tried your code https://github.com/ErichStyger/mcuoneclipse/blob/f2a1361e8a49cc0a2428618796fde21d559cc304/Examples/M...
void UART_Init(void) {
  MSG_Init();
  if (xTaskCreate(UartTask,      /* pointer to the task                      */
          "UartTask",            /* task name for kernel awareness debugging */
          500/sizeof(portSTACK_TYPE),  /* task stack size                          */
          NULL,                      /* optional task startup argument           */
          tskIDLE_PRIORITY+1,       /* initial priority                         */
          NULL /* optional task handle to create           */
          ) != pdPASS)
  {
      for(;;) {}
  }
  MSG_SendStringTxQueue("AT\r");
  MSG_SendStringTxQueue("AT+CSQ\r");
}Then it transmits both the string together("AT\rAT+CSQ\r"). I checked here MSG_GetStringTxQueue(localBuf, sizeof(localBuf)); and gives response of first string.
 
					
				
		
Hi Erich,
Thanks for this, and sorry for the delay of my reply; I'll take a look.
I am thinking, in any case, that I'll have to modify the MCUXpresso API, but I was hoping that NXP would consider modifying the standard API.
Best regards,
Andrew.
 
					
				
		
 danielchen
		
			danielchen
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		Hi Andrew:
Thanks for your good suggestion, I will issue a feature request to the develop team.
Regards
Daniel
