diff --git a/os/hal/platforms/STM32/can_lld.c b/os/hal/platforms/STM32/can_lld.c index 32d273c6f..d21d44285 100644 --- a/os/hal/platforms/STM32/can_lld.c +++ b/os/hal/platforms/STM32/can_lld.c @@ -131,6 +131,8 @@ CH_IRQ_HANDLER(STM32_CAN1_SCE_HANDLER) { CAN1->MSR = CAN_MSR_ERRI | CAN_MSR_WKUI | CAN_MSR_SLAKI; /* Wakeup event.*/ if (msr & CAN_MSR_WKUI) { + CAND1.state = CAN_READY; + CAND1.can->MCR &= ~CAN_MCR_SLEEP; chSysLockFromIsr(); chEvtBroadcastI(&CAND1.wakeup_event); chSysUnlockFromIsr();