STM32H745ZITx - USART RX DMA Not Working
Hello,
I'm working with the STM32H745ZITx and trying to receive data over USART3 using RX DMA. However, the usart_rx_dma_buffer remains all zeros — as if no data is written. Here’s what I’ve checked:
:small_blue_diamond: DMA Configuration:
DMA1_Stream0, Peripheral-to-Memory direction
Tried both Circular and Normal mode
DMA RX request enabled for USART3
HT and TC interrupts are enabled
NVIC settings verified
:small_blue_diamond: Memory & MPU:
RX buffer is aligned using __attribute__((aligned(32)))
Proper cache invalidation is applied using SCB_InvalidateDCache_by_Addr()
Buffer region tested in .ld file using both D1 domain (0x2400xxxx) and D2 domain (0x3004xxxx)
MPU region configured as Normal, Cacheable, Shareable
:small_blue_diamond: What I’ve Tried:
IDLE line interrupt is enabled — still no data
TX DMA works correctly
RX DMA callback triggers, but buffer is untouched
- All configuration steps follow the stm32-usart-uart-dma-rx-tx
- Carefully reviewed DMA is not working on STM32H7 devices
Note: I’ve tested both 0x2400xxxx and 0x3004xxxx address ranges for the RX buffer. Even when HT or TC interrupt is triggered, no actual data appears in the buffer.
Has anyone faced a similar issue on STM32H745 and successfully resolved it?
Thank you,
Kemal
