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 @@ -801,16 +801,23 @@ void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart)
801801 }
802802#else
803803 if (__HAL_UART_GET_FLAG (huart , UART_FLAG_PE ) != RESET ) {
804- tmpval = huart -> Instance -> RDR ; /* Clear PE flag */
804+ __HAL_UART_CLEAR_FLAG ( huart , UART_CLEAR_PEF ) ; /* Clear PE flag */
805805 } else if (__HAL_UART_GET_FLAG (huart , UART_FLAG_FE ) != RESET ) {
806- tmpval = huart -> Instance -> RDR ; /* Clear FE flag */
806+ __HAL_UART_CLEAR_FLAG ( huart , UART_CLEAR_FEF ) ; /* Clear FE flag */
807807 } else if (__HAL_UART_GET_FLAG (huart , UART_FLAG_NE ) != RESET ) {
808- tmpval = huart -> Instance -> RDR ; /* Clear NE flag */
808+ __HAL_UART_CLEAR_FLAG ( huart , UART_CLEAR_NEF ) ; /* Clear NE flag */
809809 } else if (__HAL_UART_GET_FLAG (huart , UART_FLAG_ORE ) != RESET ) {
810- tmpval = huart -> Instance -> RDR ; /* Clear ORE flag */
810+ __HAL_UART_CLEAR_FLAG ( huart , UART_CLEAR_OREF ) ; /* Clear ORE flag */
811811 }
812812#endif
813-
813+ /* Restart receive interrupt after any error */
814+ uint8_t index = uart_index (huart );
815+ if (index < UART_NUM ) {
816+ serial_t * obj = rx_callback_obj [index ];
817+ if (!serial_rx_active (obj )) {
818+ HAL_UART_Receive_IT (uart_handlers [obj -> index ], & (obj -> recv ), 1 );
819+ }
820+ }
814821 UNUSED (tmpval );
815822}
816823
You can’t perform that action at this time.
0 commit comments