/* Sends a character to the specified port. 
This function replaces the original UARTCharNonBlockingPut() API and performs the same actions. A macro is provided in  */
xtBoolean UARTCharPutNonBlocking(unsigned long ulBase, unsigned char ulData)
/* Sends a character to the specified port. 
This function replaces the original UARTCharNonBlockingPut() API and performs the same actions. A macro is provided in  */
xtBoolean UARTCharPutNonBlocking(unsigned long ulBase, unsigned char ulData)
{
    xtBoolean     ulStatus = 0;
    xtBoolean     ulResult = 0;
    xASSERT((ulBase == UART0_BASE) || (ulBase == UART1_BASE) ||
            (ulBase == UART2_BASE) );
    ulStatus = (xtBoolean) xHWREGB(ulBase + UART_012_S1) & UART_012_S1_TDRE_MASK;
    if(xtrue == ulStatus)
    {
        xHWREGB(ulBase + UART_012_D) = ulData;
        ulResult = xtrue;
    }
    else
    {
        ulResult = xfalse;
    }
    return (ulResult);
}