10 years ago.

Overrun errors with two USART interrupts

Using two USARTs running at 115200 baud on a STM32F2, one to communicate with a radio module and one for serial from a PC. The clock speed is 120MHz.

When receiving data from both USARTs simultaneously overrun errors can occur on one USART or the other. Doing some quick back of the envelope calculations there should be enough time to process both, as the interrupts are just simple copy the byte to a circular buffer.

In both theory and from measurement the interrupt code to push byte to buffer should/does run in the order of 2-4µS, at 115200 baud we have around 70us to process each char.

Why are we seeing occassional OREs on one or other USART?

i have face same problem in STM32F429 help me how to solve this problem.

posted by krishna kh 14 Oct 2016

2 Answers

9 years, 12 months ago.

I had the same problem, with Nucleo F103RB

10 years ago.

Could be that your interrupt gets blocked or overruled by another higher level interrupt. Could also be that you dont empty the circular buffer in time and it overruns (you any tracking on that event?). Could be a coding error in the buffer or somewhere else....