summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/stm32/powerctrl.c12
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);
}