Hello customer,
Although the RX and TX are pointing on the same address, but I think it actually is the separated register. You can check the diagram.

Read return the contents of read only received data buffer, and write go to the write-only transmit data buffer.
You said some collisions in the received data frame.
I don't know how you test it, and what the code in your UART ISR.
Take an example, you can just test receive, no transmit, do you also meet the collisions in the received data?
This is the lpcopen code, you can refer to it:
void Chip_UART_IRQRBHandler(LPC_USART_T *pUART, RINGBUFF_T *pRXRB, RINGBUFF_T *pTXRB)
{
/* Handle transmit interrupt if enabled */
if (pUART->IER & UART_IER_THREINT) {
Chip_UART_TXIntHandlerRB(pUART, pTXRB);
/* Disable transmit interrupt if the ring buffer is empty */
if (RingBuffer_IsEmpty(pTXRB)) {
Chip_UART_IntDisable(pUART, UART_IER_THREINT);
}
}
/* Handle receive interrupt */
Chip_UART_RXIntHandlerRB(pUART, pRXRB);
/* Handle Autobaud interrupts */
Chip_UART_ABIntHandler(pUART);
}
If you didn't enable the transmit interrupt, you can just handle the receive interrupt.
Please test the receive interrupt directly, whether you also have the receive problem?
If you still have problem, please let me know!
Have a great day,
Kerry
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------