STM32
直播中

杜喜喜

7年用户 1492经验值
私信 关注
[问答]

如何改变stm32L0的RTC的wakeup time?

STM32L0的RTC的wakeup time在RTC初始化为固定值,有时希望这个wakeup time可以改变,请教大家如何才能成功改变?

初始化代码如下,没有问题

static void MX_RTC_Init(void)
{

  /* USER CODE BEGIN RTC_Init 0 */

  /* USER CODE END RTC_Init 0 */

  /* USER CODE BEGIN RTC_Init 1 */

  /* USER CODE END RTC_Init 1 */
  /** Initialize RTC Only
  */
  hrtc.Instance = RTC;
  hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
  hrtc.Init.AsynchPrediv = 127;
  hrtc.Init.SynchPrediv = 255;
  hrtc.Init.OutPut = RTC_OUTPUT_DISABLE;
  hrtc.Init.OutPutRemap = RTC_OUTPUT_REMAP_NONE;
  hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
  hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
  if (HAL_RTC_Init( hrtc) != HAL_OK)
  {
    Error_Handler();
  }
  /** Enable the WakeUp
  */
  if (HAL_RTCEx_SetWakeUpTimer_IT( hrtc, 59, RTC_WAKEUPCLOCK_CK_SPRE_16BITS) != HAL_OK)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN RTC_Init 2 */

  /* USER CODE END RTC_Init 2 */

}

改变的代码如下,不成功

HAL_RTCEx_DeactivateWakeUpTimer( hrtc);

__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);

HAL_RTCEx_SetWakeUpTimer_IT( hrtc, g_UT_SleepTime, RTC_WAKEUPCLOCK_CK_SPRE_16BITS);



回帖(1)

廖漳彩

2024-4-7 16:07:25
看来你是用RTC模块中的专门的周期性唤醒单元做低功耗唤醒。这个地方唤醒时间肯定是可以调整的。不知你现在RTC本身跑起来没有,如果没有先将RTC跑起来。


如果说RTC已经正常工作了,不妨调整下唤醒时间的长短,针对你现在情况,不妨改长点,别太短了感觉不到唤醒过程。
举报

更多回帖

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