2022-05-05 05:16 AM
Barely configured UART to transmit with DMA in normal mode. Using HAL_UART_Transmit_DMA(&huart1, &buf, 1); in loop, it just transmit only one time. Why? because it's state become busy and stay in that state.
We must change the uart state manually in dma_cplt routine manually.
I think this must be setted automatically, doesn't it?
Also in normal DMA we can't use: HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
Then we're forced to place:
huart1.gState = HAL_UART_STATE_READY;
right before:
HAL_UART_Transmit_DMA(&huart1, &buf, 1);
HAL library is really lovely and I hope it to become better gradullay, thanks for your efforts.