Skip to main content
Vel
Associate III
Apr 30, 2021 10:38 AM UTC
Solved

STM32H7 USART1 DMA is not working..

Hi team,

I'm using STM32H753BI. Here i'm using USART1 (PA9 & PA10) in DMA Mode. That code is generated by cubeMX and also i tried the example program of STM32H743-EVAL Board. Both are not working.

Here i have attached the hal_msp_file.c and main.c for your reference.

Thanks,

vel.

This topic has been closed for replies.
waclawek.jan
waclawek.janBest answer
Super User
May 4, 2021 7:04 AM UTC

Tx buffer (aTxStartMessage) is at 0x20000000 and that's DTCM which is not accessible by DMA.

JW

12 replies

TDK
Apr 30, 2021 2:56 PM UTC

What does "not working" mean here specifically? How do you know it's not working?

"If you feel a post has answered your question, please click ""Accept as Solution""."
Vel
VelAuthor
Associate III
May 1, 2021 12:05 AM UTC

Hi,

Thanks for your response. I'm expecting the data in Hyper terminal. But data was not shown the terminal. That's why i mentioned its not working.

Tesla DeLorean
Guru
May 1, 2021 12:59 AM UTC

If the interrupt and polled versions transmit successfully the UART works.

If the DMA isn't sending the expected data, check the buffer address

Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
Tesla DeLorean
Guru
Apr 30, 2021 3:13 PM UTC

DMA does work on the H7/UART

I suspect you're going to have to be more attentive to the memory buffer addresses, cache coherency, and program flow here.

Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
Vel
VelAuthor
Associate III
May 3, 2021 6:54 AM UTC

Hi,

Thanks for your response. I understand your point. That's why I'm follow the example program for STM32H743I-EVAL Board example. but example program also not working.

HAL_DMA_ERROR_TE error bit was set while transmitting the data.

waclawek.jan
Super User
May 3, 2021 6:51 AM UTC

> verified the buffer address

Tell us that address.

JW

Vel
VelAuthor
Associate III
May 4, 2021 4:29 AM UTC

Hi,

Thanks for your response. Here I'm mentioned the DAM Address. Buffer Address is 0x400200xx..

0693W00000ANEW7QAP.pngThanks,

vel

nanotronicsnss
Associate III
May 12, 2021 12:58 PM UTC

Hi Vel,

I am having the same problem with STM32H750VB...(https://community.st.com/s/question/0D53W00000mm8h1SAA/stm32h750vbuartdmamode) Can u tell me how u got these addresses and how to change the address of TXBuff ...

waclawek.jan
waclawek.janBest answer
Super User
May 4, 2021 7:04 AM UTC

Tx buffer (aTxStartMessage) is at 0x20000000 and that's DTCM which is not accessible by DMA.

JW

Vel
VelAuthor
Associate III
May 6, 2021 10:38 AM UTC

HI,

Thanks for your response, After changing the buffer address at 0x24000000 its working..

Thanks,

Vel