Fix spurious interrupts from STM32 ORE (#456)
Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
This commit is contained in:
+9
-11
@@ -110,17 +110,9 @@ bool rs485_receive_error(void)
|
||||
return false;
|
||||
}
|
||||
|
||||
/*********************************************************************/ /**
|
||||
* @brief
|
||||
*USARTx
|
||||
*interrupt
|
||||
*handler
|
||||
*sub-routine
|
||||
* @param[in]
|
||||
*None
|
||||
* @return
|
||||
*None
|
||||
**********************************************************************/
|
||||
/**
|
||||
* @brief USARTx interrupt handler sub-routine
|
||||
*/
|
||||
void USART2_IRQHandler(void)
|
||||
{
|
||||
uint8_t data_byte;
|
||||
@@ -130,6 +122,12 @@ void USART2_IRQHandler(void)
|
||||
data_byte = USART_ReceiveData(USART2);
|
||||
(void)FIFO_Put(&Receive_Buffer, data_byte);
|
||||
}
|
||||
if (USART_GetFlagStatus(USART2, USART_FLAG_ORE) != RESET) {
|
||||
/* note: enabling RXNE interrupt also enables the ORE interrupt! */
|
||||
/* dummy read to clear error state */
|
||||
data_byte = USART_ReceiveData(USART2);
|
||||
USART_ClearFlag(USART2, USART_FLAG_ORE);
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
|
||||
Reference in New Issue
Block a user