zoukankan      html  css  js  c++  java
  • 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();         //清除复位标志

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

          … … …

      }

  • 相关阅读:
    基于边缘保留滤波实现人脸磨皮的算法 | 掘金技术征文
    图像算法---表面模糊算法
    通过人脸照片更换皮肤的方法及系统
    一种数字图像自动祛除斑点的方法
    Leetcode 301.删除无效的括号
    Leetcode 300.最长上升子序列
    Leetcode 299.猜字游戏
    Leetcode 297.二叉树的序列化和反序列化
    Leetcode 295.数据流的中位数
    Leetcode 289.生命游戏
  • 原文地址:https://www.cnblogs.com/fozu/p/3541915.html
Copyright © 2011-2022 走看看