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();         //清除复位标志

 

 

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

      … … …

  }

 

posted on   wangyw  阅读(3691)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示