Skip to main content
MMana.519
Visitor II
October 28, 2019
Question

STM32F091 USART Idle line or Receiver Timeout Issue. Interrupts not firing. HAL Drivers

  • October 28, 2019
  • 1 reply
  • 783 views

I have a requirement for receiving some long USART packets. (200 to 300 bytes). They can be of variable lengths. I did not want to poll or trigger interrupts for each byte and watch for a Stop byte symbol. But been trying to get the Idle line or Receiver Timeout feature but the interrupts are not firing correctly.

I am using HAL drivers.

Are there any known issues with these features ? Any knows workarounds that I am missing ?

This topic has been closed for replies.

1 reply

waclawek.jan
Super User
October 28, 2019

Check that the respective interrupts are enabled having set respective bits in USARTx_CR1 (RTOIE, IDLEIE) and for the timeout, that RTOEN is set in USARTx_CR2 (note that this feature is available only for some USARTs, in 'F09x for USART1-USART3). Check by reading out NVIC registers if the interrupt is enabled. Check in disassembly that ISR has the proper name and is properly inserted into the vector table.

JW

PS. Please change your username to a normal nick.