/* Function required in order to link UARTCommandConsole.c - which is used by multiple different demo application. */ void vSerialPutString( xComPortHandle pxPort, const signed char * const pcString, unsigned short usStringLength ) { const TickType_t xMaxBlockTime = pdMS_TO_TICKS( 5000 ); /* Only one port is supported. */ ( void ) pxPort; /* Clear the flag before initiating a new transmission */ sci7_txdone = FALSE; /* Don't send the string unless the previous string has been sent. */ if( ( xSendingTask == NULL ) && ( usStringLength > 0 ) ) { /* Ensure the calling task's notification state is not already pending. */ xTaskNotifyStateClear( NULL ); /* Store the handle of the transmitting task. This is used to unblock the task when the transmission has completed. */ xSendingTask = xTaskGetCurrentTaskHandle(); /* Send the string using the auto-generated API. */ R_SCI7_Serial_Send( ( uint8_t * ) pcString, usStringLength ); /* Wait in the Blocked state (so not using any CPU time) until the transmission has completed. */ ulTaskNotifyTake( pdTRUE, xMaxBlockTime ); } }
/******************************************************************************* * Function Name: R_SCI7_AsyncTransmit * Description : This function sends SCI7 data and waits for the transmit end flag. * Arguments : tx_buf - * transfer buffer pointer * tx_num - * buffer size * Return Value : status - * MD_OK or MD_ARGERROR *******************************************************************************/ MD_STATUS R_SCI7_AsyncTransmit (uint8_t * const tx_buf, const uint16_t tx_num) { MD_STATUS status = MD_OK; /* clear the flag before initiating a new transmission */ sci7_txdone = FALSE; /* Send the data using the API */ status = R_SCI7_Serial_Send(tx_buf, tx_num); /* Wait for the transmit end flag */ while (FALSE == sci7_txdone) { /* Wait */ } return (status); }