RTC时钟是一个独立的计时器。可以低功耗运行,掉电也会可以运行。
RTC采用外部32768时钟,所以经过异步预分频和同步预分频之后可以得到1HZ频率的信号源,用来提供秒信号。
STM32单片机内自动补偿了闰年,大小月等,我们只需要对他配置一下就好。
1.1 设置闹钟时间RTC,ALARM,中断结构体配置 关闭闹钟 配置RTC结构体 配置闹钟结构体 设置闹钟 清楚闹钟标志位和闹钟中断标志位 开启闹钟A中断,开启闹钟 中断配置及其初始化 中断优先级配置及其初始化 1.1 闹钟中断和唤醒中断服务函数配置进入中断后执行完相应的语句,清楚中断标志位
1.1 RTC初始化定义RTC结构图 使能时钟RCC_APB1Periph_PWR,挂载在APB上的 使能后背寄存器访问PWR_BackupAccessCmd 判断是否为第一次配置,RTC_ReadBackupRegister(RTC_BKP_DR0)!=0x5050,为什么就是第一次配置,不懂??? 开启LSE时钟 等待低速晶振就绪 开启失败则返回1,成功执行下一条 设置RTC时钟,使能RTC时钟 设置RTC同步和异步时钟分频系数 设置RTC格式(12小时或者24小时) RTC初始化 设置时间和日期 { 定义RTC结构体,设置结构体内参数 成功返回RTC_SetDate函数,(1成功,0失败) } 如果是第一次标志,则设定标志值RTC_WriteBackupRegister(RTC_BKP_DR0,0x5050); //标记已经初始化过了,下次就可以通过访问备份寄存器判断是否第一次配置了 1.1 时钟配置关闭RTC时钟 RTC_WakeUpCmd唤醒时钟选择 RTC_WakeUpClockConfig设置自动重载寄存器 RTC_SetWakeUpCounter控制的RTC唤醒定时器寄存器(RTC_WUTR),每几秒进入一次中断清楚唤醒重装载寄存器标志 RTC_ClearITPendingBit清楚中断线22中断标志位开启唤醒定时器中断和唤醒定时器中断结构配置中断优先级配置
时钟配置里RTC_Set_WakeUp对于这个函数不是很理解,RTC_WakeUpClock_RTCCLK_Div16这些代表的是什么意思,是哪个寄存器里的,RTC_WakeUpClock_RTCCLK_Div16和RTC_WakeUpClock_RTCCLK_Div8有什么区别,会影响哪些参数,我都没找到??????
|