Skip to main content
Vel
Associate III
April 30, 2021
Solved

STM32H7 USART1 DMA is not working..

  • April 30, 2021
  • 12 replies
  • 9156 views

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.
Best answer by waclawek.jan

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

JW

12 replies

TDK
April 30, 2021

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

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

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
April 30, 2021

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

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

> verified the buffer address

Tell us that address.

JW

Vel
VelAuthor
Associate III
May 4, 2021

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

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

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

JW

Vel
VelAuthor
Associate III
May 6, 2021

HI,

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

Thanks,

Vel