cancel
Showing results for 
Search instead for 
Did you mean: 

Two UARTs do not function properly simultaneously

dorong
Associate II

I am using two UARTs simultaneously.
The CPU is STM32H743. One UART is on UART 4 that transmits information to pc uart
And the other UART on UART 5 receives information from pc
If these UARTS function alone, they function well.
I am using the DMA idle function on the receive and the DMA function on the transmit
When they function together, the information is not properly received from the PC on UART 5.

Please help me resolve this issue

 

2 REPLIES 2
TDK
Super User

Multiple UARTs can work together at the same time. They are independent.

It's going to be hard to debug without seeing any code.

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

As @TDK said, there's no inherent reason why multiple UARTs can't work simultaneously - so it must be something in your hardware and/or software setup.

Therefore, you'll need to give details of your hardware and software setup.

See: How to write your question to maximize your chances to find a solution

And: How to insert source code

 


@dorong wrote:

 the information is not properly received from the PC on UART 5.


So UART4 remains fine?

What, exactly, does "not properly received" mean?

  • What were you expecting to receive ?
  • What are you actually receiving ?
  • What investigation/testing/debugging have you done to find what's going on ?

@dorong wrote:

One UART is on UART 4 that transmits information to pc uart
And the other UART on UART 5 receives information from pc


Is there a particular reason for using two separate UARTs - one for transmit, and another for receive?

UART = Universal Asynchronous Receiver and Transmitter - one UART can do both receive and transmit!

How are these UARTs connected to the PC ?

A complex system that works is invariably found to have evolved from a simple system that worked.
A complex system designed from scratch never works and cannot be patched up to make it work.