STM32的备份寄存器和控制状态寄存器

STM32的备份寄存器和控制状态寄存器

 

1 备份寄存器用于RTC时钟

RTC时钟可以在掉电以后继续计数,保证时间的延续,但是重新上电以后需要配置,保证之前的计数不会被清除,可以借助备份寄存器实现,备份寄存器掉电以后也可以保持。

if (BKP_ReadBackupRegister(BKP_DR1) != 0xA5A5)   //检测备份区域寄存器的值

  {

    RTC_Configuration();    //配置RTC

    Time_Adjust();             //调整时间,将UNIX时间设入RTC计数值

    BKP_WriteBackupRegister(BKP_DR1, 0xA5A5);      //给BKP_DR1写入0xA5A5

  }

  else

  {                                     //不需要重新配置了,直接等待RTC同步完成

    /* Wait for RTC registers synchronization */

    RTC_WaitForSynchro();

 

    RTC_ITConfig(RTC_IT_SEC, ENABLE);   //配置RTC中断

    /* Wait until last write operation on RTC registers has finished */

    RTC_WaitForLastTask();

  }

 

 

2 控制状态寄存器用于检测系统复位

大而复杂的系统,为了防止程序跑飞,采用开启看门狗,若程序飞掉以后,可以重新复位,然后让系统重新运行。

 

if(RCC_GetFlagStatus(RCC_FLAG_IWDGRST) != RESET)

  {         //如果是独立看门狗复位

    /* Clear reset flags */

    RCC_ClearFlag();         //清除复位标志

 

 

       … … …  //此时需要记录复位的时间、原因等信息

      … … …

  }

 

转载于:https://www.cnblogs.com/fozu/p/3541915.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值