File tree Expand file tree Collapse file tree 1 file changed +12
-5
lines changed
Expand file tree Collapse file tree 1 file changed +12
-5
lines changed Original file line number Diff line number Diff line change @@ -797,16 +797,23 @@ void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)
797797 }
798798#else
799799 if (__HAL_UART_GET_FLAG (huart , UART_FLAG_PE ) != RESET ) {
800- tmpval = huart -> Instance -> RDR ; /* Clear PE flag */
800+ __HAL_UART_CLEAR_FLAG ( huart , UART_CLEAR_PEF ) ; /* Clear PE flag */
801801 } else if (__HAL_UART_GET_FLAG (huart , UART_FLAG_FE ) != RESET ) {
802- tmpval = huart -> Instance -> RDR ; /* Clear FE flag */
802+ __HAL_UART_CLEAR_FLAG ( huart , UART_CLEAR_FEF ) ; /* Clear FE flag */
803803 } else if (__HAL_UART_GET_FLAG (huart , UART_FLAG_NE ) != RESET ) {
804- tmpval = huart -> Instance -> RDR ; /* Clear NE flag */
804+ __HAL_UART_CLEAR_FLAG ( huart , UART_CLEAR_NEF ) ; /* Clear NE flag */
805805 } else if (__HAL_UART_GET_FLAG (huart , UART_FLAG_ORE ) != RESET ) {
806- tmpval = huart -> Instance -> RDR ; /* Clear ORE flag */
806+ __HAL_UART_CLEAR_FLAG ( huart , UART_CLEAR_OREF ) ; /* Clear ORE flag */
807807 }
808808#endif
809-
809+ /* Restart receive interrupt after any error */
810+ uint8_t index = uart_index (huart );
811+ if (index < UART_NUM ) {
812+ serial_t * obj = rx_callback_obj [index ];
813+ if (!serial_rx_active (obj )) {
814+ HAL_UART_Receive_IT (uart_handlers [obj -> index ], & (obj -> recv ), 1 );
815+ }
816+ }
810817 UNUSED (tmpval );
811818}
812819
You can’t perform that action at this time.
0 commit comments