RTC内核完全独立于APB1接口,软件通过APB1接口对RTC相关寄存器访问。但是相关寄存器只在RTC APB1时钟进行重新同步的RTC时钟的上升沿被更新。所以软件必须先等待寄存器同步标志位(RTC_CRL的RSF位)被硬件置1才读。 三、RTC时钟源 首先讲一下时钟源: 三种不同的时钟源可被用来驱动系统时钟(SYSCLK): ● HSI振荡器时钟...
在配置RTC模块的时钟时,把输入的32768Hz的RTCCLK进行32768分频得到实际驱动计数器的时钟TR_CLK = RTCCLK/37768 = 1Hz,计时周期为1秒,计时器在TR_CLK的驱动下计数,即每秒计数器RTC_CNT的值加1。 RTC时间设置 RTC时间设置就是对RTC计数器寄存器RTC_CNT进行设置。 该寄存器由两个16位的寄存器RTC_CNTH和RTC_CNTL...
它的计数器 RTC_CNT 的 32 位由 RTC_CNTL 和 RTC_CNTH 两个寄存器组成,分别保存定时计数值的低 16 位和高 16 位。在配置 RTC 模块的时钟时,通常把输入的 32768Hz 的 RTCCLK 进 32768 分频得到实际驱动计数器的时钟 TR_CLK = RTCCLK/32768= 1 Hz,计时周期为1秒,计时器在 TR_CLK 的驱动下计数,即每...
RTC32位可编程计数器由RTC_CNT、RTC_ALR构成 RTC_CNT是32位计数寄存器,存放RTC当前计数值,计数的速率取决于TR_CLK。分为两个16位寄存器RTC_CNTH和RTC_CNTL RTC_ALR是闹钟(alarm)寄存器,当可编程计数器(RTC_CNT)的值与RTC_ALR中的32位值相等时,触发一个闹钟事件,并且产生RTC闹钟中断。 系统复位后,对后备寄存...
//进入配置模式 RTC->PRLL = 32767;//fTR_CLK = fRTCCLK /(PRL[19:0]+1),周期为1Hz RTC->CNTL = 0;//配置当前时间 RTC->CNTH = 0; RTC->ALRH = 0;//配置闹钟时间 RTC->ALRL = 2; RTC->CRH |= (RTC_CRH_ALRIE + RTC_CRH_SECIE);//使能秒中断和闹钟中断 RTC->CRL &= ~(RTC_...
2.7 RTC 计数器寄存器——RTC_CNT 寄存器 该寄存器由 2 个 16 位的寄存器组成 RTC_CNTH 和 RTC_CNTL,总共 32 位,用来记录秒钟值(一般情况下)。在修改这个寄存器的时候要先进入配置模式。 2.8 RTC 计数器寄存器——RTC 闹钟寄存器 该寄存器也是由 2 个 16 位的寄存器组成 RTC_ALRH 和 RTC_ALRL。总共也是...
void RTC_SetCounter(uint32_t CounterValue) { RTC_EnterConfigMode(); /* Set RTC COUNTER MSB word */ RTC->CNTH = CounterValue >> 16; /* Set RTC COUNTER LSB word */ RTC->CNTL = (CounterValue & RTC_LSB_MASK); RTC_ExitConfigMode(); ...
RTC->CNTL = (CounterValue & RTC_LSB_MASK);RTC_ExitConfigMode();} 这样就明白了吧,其实就是...
它的计数器RTC_CNT的32位由RTC_CNTL和RTC_CNTH两个寄存器组成,分别保存定时计数值的低16位和高16位。 在配置RTC模块的时钟时,通常把输入的32768Hz的RTCCLK进行32768分频得到实际驱动计数器的时钟 TR_CLK =RTCCLK/32768= 1 Hz, 计时周期为1秒,计时器在TR_CLK的驱动下计数,即每秒计数器RTC_CNT的值加1。
void RCC_RTCCLKCmd(FunctionalState NewState)//时钟使能 RTC配置函数(预分频,计数值: void RTC_SetPrescaler(uint32_t PrescalerValue);//预分频配置:PRLH/PRLL void RTC_SetCounter(uint32_t CounterValue);//设置计数器值:CNTH/CNTL void RTC_SetAlarm(uint32_t AlarmValue);//闹钟设置:ALRH/ALRL ...