打印
[STM32F3]

在开始使用STM32的RTC模块之前,确实需要进行RTC时钟的初始化。

[复制链接]
142|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sj8zw8|  楼主 | 2024-5-31 02:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下是一个简单的示例代码,展示了如何在STM32上初始化RTC时钟:

c

#include "stm32l0xx.h"

void RTC_Init(void) {
    // 启用PWR时钟
    RCC->APB1ENR |= RCC_APB1ENR_PWREN;
    // 解锁RTC和后备寄存器访问
    PWR->CR |= PWR_CR_DBP;

    // 启用RTC时钟
    RCC->CSR |= RCC_CSR_RTCEN;

    // 等待RTC寄存器同步
    RTC->ISR |= RTC_ISR_INIT;
    while ((RTC->ISR & RTC_ISR_INITF) == 0);

    // 设置RTC时钟源
    RCC->CSR |= RCC_CSR_RTCSEL_LSE; // 使用低速外部晶振作为RTC时钟源
    RCC->CSR &= ~RCC_CSR_RTCSEL; // 清除RTC时钟源选择位

    // 设置预分频器
    RTC->PRER = (127 << RTC_PRER_PREDIV_A_Pos) | (255 << RTC_PRER_PREDIV_S_Pos); // 预分频器A和S的设置

    // 退出RTC初始化模式
    RTC->ISR &= ~RTC_ISR_INIT;
}



使用特权

评论回复
沙发
sj8zw8|  楼主 | 2024-5-31 02:48 | 只看该作者
上述代码的主要步骤包括:

启用PWR时钟和RTC时钟。
解锁RTC和后备寄存器的访问。
等待RTC寄存器同步。
配置RTC时钟源,这里选择使用低速外部晶振(LSE)作为RTC的时钟源。
设置RTC预分频器,以确保RTC时钟满足要求。
退出RTC初始化模式,允许RTC开始正常工作。
你可以根据具体的应用需求和硬件设计,对RTC初始化代码进行相应的修改和调整。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

245

帖子

1

粉丝