2021-02-09 03:41 AM
Hello!
I have strange issue with DMA mode for UART7. I have callback for data transfer complete, but if i sending new data - i have broken data. If i added timeout - all data sending Ok.
does anyone have any thoughts?
2021-02-09 03:44 AM
Do you have cache enabled or disabled? When you say if you add timeout, all data OK => do you send w/o DMA then?
2021-02-09 03:59 AM
data cache is disabled, all buffer into D2 RAM.
>> When you say if you add timeout, all data OK => do you send w/o DMA then?
I sending via HAL_UART_Transmit_DMA();
2021-02-09 04:17 AM
How exactly is data broken, can you provide an example, or two?
Using a FIFO?
Even without caching writes need to be fenced.
2021-02-09 11:53 PM
Yep! FIFO.
Also i added into stm32h7xx_hal_uart.c the call HAL_UART_TxCpltCallback() from UART_DMATransmitCplt() for DMA_NORMAL mode.
Thank you!