diff --git a/Core/Src/main.c b/Core/Src/main.c index d3c4ab3..6b9264d 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -445,9 +445,11 @@ void Error_Handler(void) //TODO: check if it is necessary to stop FreeRTOS - uint32_t error_code; - if (hcan == &hcan1) error_code = HAL_CAN_GetError(&hcan1); - else if (hcan == &hcan2) error_code = HAL_CAN_GetError(&hcan2); + uint32_t error_can1 == 0; + uint32_t error_can2 == 0; + + if (HAL_CAN_GetState(&hcan1) != HAL_CAN_STATE_READY) error_code = HAL_CAN_GetError(&hcan1); + else if (HAL_CAN_GetState(&hcan2) != HAL_CAN_STATE_READY) error_code = HAL_CAN_GetError(&hcan2); // TODO: write error to SD and/or serial