2019-10-27 09:15 PM
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 ?
2019-10-27 11:19 PM
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.