Hi Felipe,
I saw the function UART_ClearStatusFlags.
Reading the comments it expects a bit mask with the following values:
kUART_TxDataRegEmptyFlag, kUART_TransmissionCompleteFlag, kUART_RxDataRegFullFlag,
kUART_RxActiveFlag, kUART_NoiseErrorInRxDataRegFlag, kUART_ParityErrorInRxDataRegFlag,
kUART_TxFifoEmptyFlag,kUART_RxFifoEmptyFlag.
Which flag should i reset? All?
In the example the callback it's the following:
void UART_UserCallback(UART_Type *base, uart_handle_t *handle, status_t status, void *userData)
{
userData = userData;
if (kStatus_UART_TxIdle == status)
{
txBufferFull = false;
txOnGoing = false;
}
if (kStatus_UART_RxIdle == status)
{
rxBufferEmpty = false;
rxOnGoing = false;
}
}
Is it okay if I call the UART_ClearStatusFlags function on callback if status==kStatus_UART_RxHardwareOverrun?
What I have to do if status==kStatus_UART_RxBusy? Very often I find that the UART is stuck in this state and I no longer receive anything
(I use the call UART_TransferReceiveNonBlocking).
It says in the comments: kStatus_UART_RxBusy Previous receive request is not finished.
How come UART hangs?
I also wanted to specify that at the moment I am not using the internal FIFO to which you have seen you refer.
I don't know if it could help. How does it work? In transmission wait for the queue to be full to send message or send as soon as it can?