ST意法半导体
直播中

大彭

10年用户 1070经验值
擅长:电源/新能源 嵌入式技术
私信 关注
[问答]

使用LOWPOWERMODE_STOP(0,1,2)的STM32WLE5JB来降低功耗不会退出停止模式怎么解决?

我使用带有LOWPOWERMODE_STOP(0,1,2)的STM32WLE5JB来降低功耗。虽然我将LPtiM配置为LSE 2 秒以唤醒,但设备不会退出停止模式。我用LSI尝试了 LPTIM ,结果是一样的。
这是我的代码 LPTIM Init:
  • __HAL_RCC_LPTIM1_CLK_ENABLE();
  •     __HAL_RCC_LPTIM1_CLK_SLEEP_ENABLE();
  •     __HAL_RCC_LPTIM1_CONFIG(source);
  •     LPTIM1->IER = 0;
  •     LPTIM1->IER |= LPTIM_IER_ARRMIE; //Autoreload match Interrupt Enable
  •     LPTIM1->CR |= LPTIM_CR_ENABLE;  // Enable LPTIM1
  •     LPTIM1->ARR = autoReload;           // set AutoReloadRegister 32768/65536 = 0.5 Hz
  •     while(LPTIM1->ISR & LPTIM_ISR_ARROK != LPTIM_ISR_ARROK);
  •     LPTIM1->ICR |= LPTIM_ICR_ARROKCF; // clear IRQ flags
  •                                     // Enable timer counting
  •     LPTIM1->CR |= LPTIM_CR_CNTSTRT; // Start LPTIM
RCC初始化
  • RCC->CR |= (uint32_t)0x00000100;
  •   RCC->CR &= ~RCC_CR_HSION;
  •   tmp = RCC->ICSCR;
  •   tmp &= ~RCC_CR_MSIRANGE;
  •   tmp |= RCC_CR_MSIRANGE_6;
  •   __HAL_RCC_MSI_RANGE_CONFIG(RCC_MSIRANGE_0);
  •   RCC->ICSCR = tmp;
  •   HAL_RCCEx_WakeUpStopCLKConfig(RCC_STOP_WAKEUPCLOCK_MSI);
  •   while((RCC->CR & RCC_CR_MSIRDY)==0);
  •   SET_BIT(RCC->BDCR, RCC_BDCR_LSEON);
  •   while(READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == 0U);
  •   SET_BIT(RCC->BDCR, RCC_BDCR_LSESYSEN);
  •   while (READ_BIT(RCC->BDCR, RCC_BDCR_LSESYSRDY) == 0U);
  •   HAL_RCCEx_EnableLSECSS();
停止模式输入:
  • HAL_PWREx_DisableBatteryCharging();
  •     HAL_PWREx_DisableWPVD();
  •     HAL_PWREx_DisableBORPVD_ULP();
  •     HAL_PWREx_DisablePVM3();
  •     LL_PWR_DisableWakeUpPin(LL_PWR_WAKEUP_PIN2);
  •     LL_PWR_ClearFlag_WU2();
  •     HAL_PWREx_DisableInternalWakeUpLine();
  •     EXTI->PR1 = 0xFFFFFFFF;
  •     EXTI->PR2 = 0xFFFFFFFF;
  •     __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(RTC, RTC_FLAG_WUTF);
  •     __HAL_RTC_ALARM_CLEAR_FLAG(RTC, RTC_FLAG_ALRAF);
  •     __HAL_RTC_ALARM_CLEAR_FLAG(RTC, RTC_FLAG_ALRBF);
  •     PWR->EXTSCR = 0;
  •     HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_SLEEPENTRY_WFI);
设备进入 STOP 模式后,下一个加载代码以此类消息开头,选择 NO 让我将新程序加载到闪存









回帖(1)

廖靖华

2023-1-16 14:05:51
您是否相应地配置了 EXTI?
请找到一个演示 LPTim 处于停止模式 2 的简单示例。它会在 MCU 唤醒时随时切换 LED。(消耗低于 3.9mA LEDon 至 1.5uA =LEDoff)
可以在 ProjectsNUCLEO-WL55JCExamplesLPTIM 中提取 zip。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分