Skip to main content
Visitor
July 20, 2026
Question

UART OVERRUN ERROR In STM32G473

  • July 20, 2026
  • 3 replies
  • 34 views

Hi ST Team,

I’ve been using STM32G473VET3 for my product for the past 2 years.

Right now I’m testing the code which I’ve freezed an year ago. But it enters uart error callback as soon as it calls HAL_UART_RECEIVE_IT function.(Overrun error continuously even after clearing it, Also no data is sending in that line).

Hence I’ve generated new code in the cubemx also. In that also same problem arises whenever HAL_UART_RECEIVE_IT is called.

IDE version : 1.18.1

MX version : 6.14.0

G4 package version : V1.3.0

3 replies

MOBEJ
ST Employee
July 20, 2026

Hello ​@Balaji_Caliber ,

Thank you for sharing the details.

Please note that the current STM32CubeG4 package version is 1.6.3. We strongly recommend that you test with this latest version, which you can download from ST.com.

To help isolate the issue, please try using the provided UART_HyperTerminal_IT example, adapt the UART pins and port to your specific board, and then test again to compare the behavior.

Br

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.
waclawek.jan
Super User
July 20, 2026

Overrun is not about sending but about receiving.

If you stop program execution in debugger, but some external device keeps sending data to UART, then it will overrun. If you  don’t handle the overrun in the Rx handler (as it shares the same interrupt enable bit as the RXNE interrupt), it will “hang” in that interrupt (i.e. inter it again and again, infinitely).

I don’t use Cube/HAL. It may or may not handle the overrun, and that handling may or may not depend on Cube/HAL version. But Cube/HAL is open source and you can check if it does and proceed accordingly.

JW

 

TDK
July 20, 2026

Existing code doesn’t stop working. I recommend focusing and sharing the code rather than falling into the “i didn’t change anything, why doesn’t it work?” loop. Stay objective. Use existing working examples. State hardware setup.

Reasons for ORE are listed in the reference manual. I suggest going through them one by one to determine the cause. Probably data is being sent while you are not yet ready to receive.

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