stm32l475RTC时钟times具体设置
时间: 2023-07-04 19:04:33 浏览: 112
在 STM32L475 上设置 RTC 时钟需要以下步骤:
1. 配置 LSE (外部低速晶振) 作为 RTC 时钟源。在 RCC_CR 寄存器中使能 LSE,然后等待它稳定。
2. 配置 RTC 时钟源。使用 RCC_BDCR 寄存器配置 RTCSEL 位来选择 RTC 时钟源。
3. 配置 RTC 预分频器。使用 RTC_PRER 寄存器配置 RTCCLK 预分频器,以便将 RTC 时钟源的频率分频为 1 Hz。
4. 配置 RTC 日期和时间。使用 RTC_DR 和 RTC_TR 寄存器配置 RTC 日期和时间。
5. 配置 RTC 中断。使用 RTC_CR 寄存器配置 RTC 中断和使能 RTC。
下面是一个示例代码:
```c
/* 使能 LSE */
RCC->BDCR |= RCC_BDCR_LSEON;
while((RCC->BDCR & RCC_BDCR_LSERDY) == RESET);
/* 配置 RTC 时钟源 */
RCC->BDCR |= RCC_BDCR_RTCEN;
RCC->BDCR &= ~(RCC_BDCR_RTCSEL);
RCC->BDCR |= RCC_BDCR_RTCSEL_0;
/* 配置 RTC 预分频器 */
RTC->PRER = (uint32_t)(255 << 16) | (127 << 0);
/* 配置 RTC 日期和时间 */
RTC->ISR |= RTC_ISR_INIT;
while((RTC->ISR & RTC_ISR_INITF) == RESET);
RTC->TR = (uint32_t)(0x00 << 16) | (0x00 << 8) | (0x00 << 0);
RTC->DR = (uint32_t)(0x21 << 16) | (0x11 << 8) | (0x20 << 0);
RTC->ISR &= ~(RTC_ISR_INIT);
/* 配置 RTC 中断 */
RTC->CR |= RTC_CR_WUTIE;
NVIC_EnableIRQ(RTC_WKUP_IRQn);
```
在这个例子中,我们使用 LSE 作为 RTC 时钟源,并将它的频率分频为 1 Hz。我们还配置了 RTC 的日期和时间,并启用了 RTC 中断。
阅读全文