diff options
-rw-r--r-- | ports/stm32/powerctrl.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/ports/stm32/powerctrl.c b/ports/stm32/powerctrl.c index 076215ba9..bf8be647f 100644 --- a/ports/stm32/powerctrl.c +++ b/ports/stm32/powerctrl.c @@ -502,6 +502,13 @@ void powerctrl_enter_stop_mode(void) { // executed until after the clocks are reconfigured uint32_t irq_state = disable_irq(); + #if defined(STM32H7) + // Disable SysTick Interrupt + // Note: This seems to be required at least on the H7 REV Y, + // otherwise the MCU will leave stop mode immediately on entry. + SysTick->CTRL &= ~SysTick_CTRL_TICKINT_Msk; + #endif + #if defined(MICROPY_BOARD_ENTER_STOP) MICROPY_BOARD_ENTER_STOP #endif @@ -659,6 +666,11 @@ void powerctrl_enter_stop_mode(void) { MICROPY_BOARD_LEAVE_STOP #endif + #if defined(STM32H7) + // Enable SysTick Interrupt + SysTick->CTRL |= SysTick_CTRL_TICKINT_Msk; + #endif + // Enable IRQs now that all clocks are reconfigured enable_irq(irq_state); } |