STM32_HAL_RTC_解决恢复电源时再一次初始化

1问题

板子再次恢复电源时直接初始化了时间

2解决思路

在初始化函数(MX_RTC_Init();)中增加判断,判断是否是二次初始化

将值放入备份存储其中

3问题图

4解决后的源码

/* RTC init function */
void MX_RTC_Init(void)
{

  /* USER CODE BEGIN RTC_Init 0 */
	
  /* USER CODE END RTC_Init 0 */

  RTC_TimeTypeDef sTime = {0};
  RTC_DateTypeDef DateToUpdate = {0};

  /* USER CODE BEGIN RTC_Init 1 */

  /* USER CODE END RTC_Init 1 */

  /** Initialize RTC Only
  */
  hrtc.Instance = RTC;
  hrtc.Init.AsynchPrediv = RTC_AUTO_1_SECOND;
  hrtc.Init.OutPut = RTC_OUTPUTSOURCE_ALARM;
  if (HAL_RTC_Init(&hrtc) != HAL_OK)
  {
    Error_Handler();
  }

  /* USER CODE BEGIN Check_RTC_BKUP */
if(HAL_RTCEx_BKUPRead(&hrtc,RTC_BKP_DR1)!=0xA0A0)     //这里就是在检查寄存器是不是预先设定的值,如果不是,就按照STM32CubeMX默认的设置往下走。这个值是任意定的
  {
  /* USER CODE END Check_RTC_BKUP */

  /** Initialize RTC and set the Time and Date
  */
  sTime.Hours = 0x19;
  sTime.Minutes = 0x43;
  sTime.Seconds = 0x0;

  if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BCD) != HAL_OK)
  {
    Error_Handler();
  }
  DateToUpdate.WeekDay = RTC_WEEKDAY_WEDNESDAY;
  DateToUpdate.Month = RTC_MONTH_MAY;
  DateToUpdate.Date = 0x8;
  DateToUpdate.Year = 0x24;

  if (HAL_RTC_SetDate(&hrtc, &DateToUpdate, RTC_FORMAT_BCD) != HAL_OK)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN RTC_Init 2 */
HAL_RTCEx_BKUPWrite(&hrtc, RTC_BKP_DR1, 0xA0A0);  //这里就是将这个寄存器的标志设为刚才的那个值,下次掉电后就不会进入到这里来了
}//判断为是第二次初始化时会退出初始化时间
  /* USER CODE END RTC_Init 2 */

}

5解决后的图

相关推荐

  1. STM32 系统时钟初始化函数和延函数

    2024-05-11 10:56:10       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-11 10:56:10       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-11 10:56:10       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-11 10:56:10       87 阅读
  4. Python语言-面向对象

    2024-05-11 10:56:10       96 阅读

热门阅读

  1. linux phpstudy 重启命令

    2024-05-11 10:56:10       35 阅读
  2. SSH简介:安全远程访问的基石

    2024-05-11 10:56:10       33 阅读
  3. Jtti:哪些方法可以降低美国CN2服务器的延迟?

    2024-05-11 10:56:10       30 阅读
  4. Hive优化(3)——索引优化

    2024-05-11 10:56:10       35 阅读
  5. 2024年记录

    2024-05-11 10:56:10       33 阅读
  6. sql分页查询

    2024-05-11 10:56:10       34 阅读
  7. pytorch 梯度更新过程

    2024-05-11 10:56:10       28 阅读
  8. PyTorch与深度学习:从入门到精通

    2024-05-11 10:56:10       32 阅读
  9. pytorch2ONNX时,AdaptiveAvgPool2d的相关问题

    2024-05-11 10:56:10       23 阅读
  10. 【python】Flask开发感悟

    2024-05-11 10:56:10       24 阅读
  11. 【软考】scrum的步骤

    2024-05-11 10:56:10       31 阅读
  12. 【C++】每日一题 103 二叉树的锯齿形层序遍历

    2024-05-11 10:56:10       34 阅读