找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2843|回复: 0
打印 上一主题 下一主题
收起左侧

STM32学习笔记之RTC

[复制链接]
跳转到指定楼层
楼主
ID:75926 发表于 2015-4-10 17:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
经过漫长的等待 我的CR1216 锂电池终于到货了 .好了 这样就可以做实验了  经过了一段时间 我没有 发表笔记了....

不知道 有没有人对 电脑(现在的只能手机也办得到了)断开电源 (甚至是重装系统) 依然能显示出正确的时间 感到好奇.
void RTC_Configuration()
{
if(BKP_ReadBackupRegister(BKP_DR1) != 0xA5A7)
{
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR |RCC_APB1Periph_BKP, ENABLE);//开启电源和后备寄存器时钟
       PWR_BackupAccessCmd(ENABLE);//使能后备寄存器
       BKP_DeInit();//设置后备寄存器为默认值
       RCC_LSEConfig(RCC_LSE_ON);//开启外部低速时钟
       while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET); //等带外部时钟稳定
       RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);//把外部低速时钟设置为RTC的时钟
       RCC_RTCCLKCmd(ENABLE);    //使能RTC的时钟
RTC_WaitForSynchro();     //等待RTC寄存器与APB1总线时钟同步
RTC_WaitForLastTask();//等待上一个操作完成
       RTC_ITConfig(RTC_IT_SEC,ENABLE);//开启RTC的秒中断
       RTC_WaitForLastTask();//等待上一个操作完成
       RTC_SetPrescaler(32767);//设置预分频值
RTC_WaitForLastTask();//等待上一个操作完成
       BKP_WriteBackupRegister(BKP_DR1,0xA5A7);//在后备寄存器中做标记
       RTC_SetCounter(z);//设置时间初始值
      
}
       else
       {
              RTC_WaitForSynchro();//等待RTC寄存器与APB1总线时钟稳定
              RTC_ITConfig(RTC_IT_SEC, ENABLE);//开启秒中断
              RTC_WaitForLastTask();//等待上一个操作完成
       }
            
//RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
      
// PWR_BackupAccessCmd(ENABLE);
BKP_TamperPinCmd(DISABLE);   //禁止入侵检测
        RCC_ClearFlag();     //清除中断标志位
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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