Question
CubeF4, when is a UART DMA transmission over ?
Hello,
I'm sending data on UART using DMA with HAL_UART_Transmit_DMA().
As sometimes I need to send two messages consecutively, I'm testing if the previous
message is sent before preparing the new one. I do something like this:
void sendData(){
uint8_t toSendCount;
while (HAL_UART_GetState(usart) != HAL_UART_STATE_READY)
;
s->size = 12;
s->code = CommandConsts::GET_PARAMS;
protocol->initTxFrame((uint8_t*)s, counter, txBuffer, &toSendCount);
HAL_UART_Transmit_DMA(usart, txBuffer, toSendCount);
}Generaly it works but sometimes, HAL_UART_GetState() never stop returning HAL_UART_STATE_BUSY_TX
I'm using F446.
What should I do ? Which function(s) should I call? Which register should I check?
