cancel
Showing results for 
Search instead for 
Did you mean: 

UART communication between two Nucleo Board using DMA receive

JAcksonPi
Associate II

I use two Nucleo-G0B1RE to communicate with each other using UART. UART5 of the master board is connected with UART1 of the slave board and both of the UARTs use DMA receive. When I first pressed the reset button of the slave board and then the master board, they could communicate successfully, but when I first pressed reset of master board and then slave board, the slave could transmit message but the master could NOT receive it. The only difference is the Power-on Sequence. what is the difference between UART detected another UART as soon as it is power on   and   UART detected after a short time.

4 REPLIES 4
TDK
Guru

If the receiver sees an invalid signal, it may enter an error state which you have to address before receiving more characters. Resetting mid-way is likely to push out an invalid signal on the UART TX line.

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

Hello @JAcksonPi 

 

Could you explain "both of the UARTs use DMA receive"? Could you share your UARTs configuration and DMA initiation?

 

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.

JAcksonPi_0-1701048813803.pngJAcksonPi_1-1701048844769.pngUART5 of master is connected with UART1 of salve. I used exactly the same program for both MCUs. Maybe I should add some statement to continuously detect if slave exists in master code?

When master is initialized first, it could transmit correct message to slave and salve could send correct message (as least in txBuf) ,however master cannot receive this response. Maybe I should continously detect slave in while loop of  master code.