从零开始一起学stm32(六)---RTC

RTC---实时时钟

 

定时器:时间基准+计数器

时钟日历:2016-7-14  14:40:30

后备区作用:在系统复位或从待机模式唤醒后,RTC的设置和时间维持不变。

完整步骤:

1.打开APB1时钟

设置寄存器RCC_APB1ENR的PWREN和BKPEN位,使能电源和后备接口时钟
 

2.取消写保护

设置寄存器PWR_CR的DBP位,使能对后备寄存器和RTC的访问

3、配置RTCCLK,并使能---RCC_BDCR寄存器

  1. 开启振荡器
  2. 等待就绪
  3. 选择RTC时钟--LSE
  4. 使能时钟!

 

4.读操作---CPU读操作:配置RSF位---同步标志

5.配置过程:


    1. 查询RTOFF位,直到RTOFF的值变为’1’---
    2. 置CNF值为1,进入配置模式
    3. 对一个或多个RTC寄存器进行写操作--写 入RTC_PRL、
    RTC_CNT、 RTC_ALR寄存器。
    4. 清除CNF标志位,退出配置模式
    5. 查询RTOFF,直至RTOFF位变为’1’以确认写操作已经完成。
    仅当CNF标志位被清除时,写操作才能进行,这个过程至少需要3个RTCCLK周期。

6.配置中断--秒中断!

7.判断秒中断标志--得到计数器的值--1.串口打印!  2.LCD屏显示

 

 

 

闹钟中断:

  1. 配置时钟
  2. 设置好闹钟时间+获得计数器的时间seccount += RTC_GetCounter();
  3. RTC_SetAlarm(seccount);
  4. 设置闹钟中断
  5. 在中断服务函数里面判断是否产生闹钟中断!

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值