/* param base LPUART peripheral base address. param data Start address of the data to write. param length Size of the data to write.  */
void LPUART_WriteBlocking(LPUART_Type *base, const uint8_t *data, size_t length)
/* param base LPUART peripheral base address. param data Start address of the data to write. param length Size of the data to write.  */
void LPUART_WriteBlocking(LPUART_Type *base, const uint8_t *data, size_t length)
{
    assert(NULL != data);
    const uint8_t *dataAddress = data;
    size_t transferSize        = length;
    while (0U != transferSize)
    {
        while (0U == (base->STAT & LPUART_STAT_TDRE_MASK))
        {
        }
        base->DATA = *(dataAddress);
        dataAddress++;
        transferSize--;
    }
}