cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H7 USART1 DMA is not working..

Vel
Associate III

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.

1 ACCEPTED SOLUTION

Accepted Solutions

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

JW

View solution in original post

12 REPLIES 12
TDK
Guru

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".

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
Up vote any posts that you find helpful, it shows what's working..
Vel
Associate III

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.

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
Up vote any posts that you find helpful, it shows what's working..
Vel
Associate III

Hi,

Yes, interrupt and polled version transmission is working fine.

verified the buffer address, it is correct.

HAL_DMA_ERROR_TE error bit was set while transmitting the data.

> verified the buffer address

Tell us that address.

JW

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.

Hi,

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

0693W00000ANEW7QAP.pngThanks,

vel

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

JW