cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H7: UART IDLE is set again without RXFNE be set.

jhi
Senior

I have the problem on my STM32H753, that the IDLE-bit is set when transmitting. On the manual it says: 

The IDLE bit is not set again until the RXFNE bit has been set (i.e. a new idle line occurs).

The RXFNE is never set (actually on CubeIDE this is shown as RXNE), because I do not receive anything. Also the RDR stays empty. And with logic analyzer I see that the RX-pin stays high the whole time. I also did not find anything on errata which could explain this. Any suggestions what it could be?

1 ACCEPTED SOLUTION

Accepted Solutions

The reason for this behaviour is that I did disable and enable receiver, which leads to a new IDLE condition.

View solution in original post

5 REPLIES 5
Foued_KH
ST Employee

Hello @jhi ,

It sounds like there could be a few potential issues causing this problem. Here are a few things you can try:

  1. Check your hardware connections

  2. Make sure that you are using the correct USART instance and that you have enabled the necessary interrupts.

  3. Check your baud rate: Ensure that the baud rate of the transmitting device matches the baud rate of the USART peripheral on your STM32H753. If the baud rates do not match, you may not be able to properly receive data.

Hope it helps!

Foued

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.

There is no other device receiving/sending anything. The only other thing on the line is logic analyzer. As I wrote, the RX stays all the time high, because well, there is nobody sending anything. I tested this with debugger and sent one byte, and after that the IDLE-bit was set, but nothing is received or seen on RX-pin (logic analyzer). Also the RXFNE stays 0.

I'm using it in FIFO mode if it makes any difference.

Could you please provide more details about you HW configuration ( did you connect the GND ?)

Foued

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.

What do you need to know? Tx/Rx are connected to RS485 driver. In this case when I‘m sending the read-enable is disabled so there is no data coming back. The RS485 bus is disconnected, so there is only one device. My logic analyzer is connected to Rx and Tx pins on the MCU. The communication works over the RS485 bus if I add second device. It is only that I don’t like to get so often IDLE interrupts. And as I said already 2 times, the IDLE bit is set even without RXFNE set in between, as it should work according to datasheet.

The reason for this behaviour is that I did disable and enable receiver, which leads to a new IDLE condition.