OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2882|回复: 1

cube mx设置rtc重启后时间复位

[复制链接]

5

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2019-6-18
在线时间
31 小时
发表于 2020-4-9 10:43:41 | 显示全部楼层 |阅读模式
20金钱
用cube mx设置的rtc。发现设置之后无论是复位还是重启时间都会清空重置。硬件没有问题,烧demo进去都正常,板子是F407。看程序应该是每次复位的时候都被初始化了,但是cube里面找不到相关的设置,请问大佬们有什么办法?

最佳答案

查看完整内容[请看2#楼]

我的做法是在初始化的中间加了一个检测,大概是这样的 void MX_RTC_Init(void) { RTC_TimeTypeDef sTime = {0}; RTC_DateTypeDef sDate = {0}; RTC_AlarmTypeDef sAlarm = {0}; /** 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 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2018-8-6
在线时间
20 小时
发表于 2020-4-9 10:43:42 | 显示全部楼层
我的做法是在初始化的中间加了一个检测,大概是这样的
void MX_RTC_Init(void)
{
  RTC_TimeTypeDef sTime = {0};
  RTC_DateTypeDef sDate = {0};
  RTC_AlarmTypeDef sAlarm = {0};

  /** 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.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
  hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
  if (HAL_RTC_Init(&hrtc) != HAL_OK)
  {
    Error_Handler();
  }

  /* USER CODE BEGIN Check_RTC_BKUP */
        if(HAL_RTCEx_BKUPRead(&hrtc,RTC_BKP_DR0)!=0X5050)//是否第一次配置,这样上电就不会重新进行初始化时间
        {
          HAL_RTCEx_BKUPWrite(&hrtc,RTC_BKP_DR0,0X5050);//标记已经初始化过了
        }
        else
        {
                return;
        }
  /* USER CODE END Check_RTC_BKUP */

后面的我省略了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-28 01:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表