Has anyone run a CAN application that works also in error cases? In my application the connection hangs, for example, after pulling the CAN bus pin plug and re-connect. One reason for this is the HAL_CAN_Transmit () function, the function does not call __ HAL_UNLOCK (HCAN) in the event of a fault (HAL_ERROR return). It seems that the same problem also exists in HAL_CAN_Sleep () and HAL_CAN_WakeUp (). Another problem is that the MSR> ERRI flag is never reset, after bus errors the system hangs in the error interrupt Prodedure (endless).
How do I get the system working after CAN-Bus Errors?