@@ -331,7 +331,7 @@ void SystemClock_Decrease(void)
331331 }
332332}
333333
334- #elif defined(STM32G0xx ) || defined(STM32G4xx )
334+ #elif defined(STM32G0xx ) || defined(STM32G4xx ) || defined( STM32U0xx )
335335/**
336336 * @brief For STM32G0 and STM32G4
337337 * running in LowPower Sleep requires to slow down frequency to 2MHz max.
@@ -366,7 +366,7 @@ void SystemClock_Decrease(void)
366366 RCC_ClkInitStruct .ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
367367 | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2 ;
368368 RCC_ClkInitStruct .APB2CLKDivider = RCC_HCLK_DIV1 ;
369- #elif defined(STM32G0xx )
369+ #elif defined(STM32G0xx ) || defined( STM32U0xx )
370370 RCC_ClkInitStruct .ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK
371371 | RCC_CLOCKTYPE_PCLK1 ;
372372#endif
@@ -447,7 +447,7 @@ void LowPower_stop(serial_t *obj)
447447 /* Enable Ultra low power mode */
448448 HAL_PWREx_EnableUltraLowPower ();
449449#endif
450- #if defined(PWR_CR1_ULPMEN ) || defined(PWR_CR3_ULPMEN )
450+ #if defined(PWR_CR1_ULPMEN ) || defined(PWR_CR3_ULPMEN ) || defined( PWR_CR3_ENULP )
451451 /* Enable Ultra low power mode */
452452 HAL_PWREx_EnableUltraLowPowerMode ();
453453#endif
@@ -479,13 +479,15 @@ void LowPower_stop(serial_t *obj)
479479#endif
480480#endif
481481 /* Enter Stop mode */
482- #if defined(UART_WKUP_SUPPORT ) && (defined(PWR_CPUCR_RETDS_CD ) \
483- || defined(PWR_CR1_LPMS_STOP2 ) || defined(PWR_LOWPOWERMODE_STOP2 ) \
484- || defined(LL_PWR_STOP2_MODE ))
482+ #if defined(UART_WKUP_SUPPORT ) && (defined(PWR_CPUCR_RETDS_CD ) || \
483+ defined(LL_PWR_MODE_STOP2 ))
485484 if ((WakeUpUart == NULL )
486485 || (WakeUpUart -> Instance == (USART_TypeDef * )LPUART1_BASE )
487486#ifdef LPUART2_BASE
488487 || (WakeUpUart -> Instance == (USART_TypeDef * )LPUART2_BASE )
488+ #endif
489+ #ifdef LPUART3_BASE
490+ || (WakeUpUart -> Instance == (USART_TypeDef * )LPUART3_BASE )
489491#endif
490492 ) {
491493#if defined(PWR_CR1_RRSTP )
@@ -596,7 +598,11 @@ void LowPower_shutdown(bool isRTC)
596598#if defined(LL_PWR_SHUTDOWN_MODE ) || defined(LL_PWR_MODE_SHUTDOWN )
597599 /* LSE must be on to use shutdown mode within RTC else fallback to standby */
598600 if ((!isRTC ) || (__HAL_RCC_GET_FLAG (RCC_FLAG_LSERDY ) == SET )) {
601+ #if defined(STM32U0xx )
602+ HAL_PWR_EnterSHUTDOWNMode ();
603+ #else
599604 HAL_PWREx_EnterSHUTDOWNMode ();
605+ #endif
600606 } else
601607#else
602608 UNUSED (isRTC );
0 commit comments