RTC---实时时钟
定时器:时间基准+计数器
时钟日历:2016-7-14 14:40:30
后备区作用:在系统复位或从待机模式唤醒后,RTC的设置和时间维持不变。
完整步骤:
1.打开APB1时钟
设置寄存器RCC_APB1ENR的PWREN和BKPEN位,使能电源和后备接口时钟
2.取消写保护
设置寄存器PWR_CR的DBP位,使能对后备寄存器和RTC的访问
3、配置RTCCLK,并使能---RCC_BDCR寄存器
- 开启振荡器
- 等待就绪
- 选择RTC时钟--LSE
- 使能时钟!
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屏显示
闹钟中断:
- 配置时钟
- 设置好闹钟时间+获得计数器的时间seccount += RTC_GetCounter();
- RTC_SetAlarm(seccount);
- 设置闹钟中断
- 在中断服务函数里面判断是否产生闹钟中断!