Skip to main content
Associate
December 19, 2023
Solved

How to set DMA Settings of USART1 of STM429ZI Nucleo board. How to cure?

I try to set DMA setting of USART1_RX, USART2_TX both. Bit MX Error message is occurred. as below figure.20231219_162517.png

This topic has been closed for replies.
TDK
TDKBest answer
December 19, 2023

The chip has a limited amount of DMA streams. If all the streams possible for USART1 are being used for something else, you will be unable to add one for the USART1.

"If you feel a post has answered your question, please click ""Accept as Solution""."

7 replies

STTwo-32
ST Technical Moderator
December 19, 2023

Hello @Da2 and welcome to the ST Community :smiling_face_with_smiling_eyes:.

I can't reproduce your issue. can you share your .ioc file so we can test it?

Best Regards.

STTwo-32

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
Da2Author
Associate
December 19, 2023

Refer the attached file. . RX and TX can not set DMA at same time.

TDK
TDKBest answer
December 19, 2023

The chip has a limited amount of DMA streams. If all the streams possible for USART1 are being used for something else, you will be unable to add one for the USART1.

"If you feel a post has answered your question, please click ""Accept as Solution""."
Da2Author
Associate
December 19, 2023

Let me know how to set DMA Streams.

TDK
December 19, 2023

You can hover over the red area to find out the reason it can't be set. In this case, because it conflicts with UART8_RX.

TDK_0-1703029563386.png

Okay, now we know why it can't be enabled. But why does it conflict? Take a look in the reference manual at the DMA request mapping table and look at the entries for USART2_TX and UART8_RX. The only option is DMA1 stream 6, which can only be dedicated to one at a time.

TDK_1-1703029906194.png

Therefore, you cannot use DMA with USART2_TX and UART8_RX at the same time.

Your options are to use a different chip (outside the STM32F4 family), or use a different peripheral, or don't use DMA with one of them.

 

(Note that your post says USART1_RX, USART2_TX, but your IOC only has UART8_RX enabled. If you don't need UART8_RX just disable it and use USART2_TX instead.)

"If you feel a post has answered your question, please click ""Accept as Solution""."
Da2Author
Associate
December 20, 2023

Thank you. Let me know the manual of Table 42. DMA1 request mapping.

Da2Author
Associate
December 20, 2023

I got manula from your home page. Thank you a lot.