zoukankan      html  css  js  c++  java
  • STM32 RTC时钟的配置

    1) 使能电源时钟和备份区域时钟。

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); //使能电源时钟和备份区域时钟。

    2) 取消备份区写保护。

    要向备份区域写入数据,就要先取消备份区域写保护 ,否则是无法向备份区域写入数据的。
    PWR_BackupAccessCmd(ENABLE); //使能 RTC 和后备寄存器访问
    3) 复位备份区域,开启外部低速振荡器。
    BKP_DeInit();//复位备份区域
    RCC_LSEConfig(RCC_LSE_ON);// 开启外部低速振荡器
    4) 选择 RTC 时钟,并使能。
    RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); //选择 LSE 作为 RTC 时钟
    RCC_RTCCLKCmd(ENABLE); //使能 RTC 时钟
    5) 设置 RTC 的分频,以及配置 RTC 时钟。
    在进行 RTC 配置之前首先要打开允许配置位(CNF),库函数是:
    RTC_EnterConfigMode();// 允许配置
    在配置完成之后,千万别忘记更新配置同时退出配置模式,函数是:
    RTC_ExitConfigMode();//退出配置模式, 更新配置
    设置 RTC 时钟分频数, 库函数是:
    void RTC_SetPrescaler(uint32_t PrescalerValue);
    然后是设置秒中断允许, RTC 使能中断的函数是:
    void RTC_ITConfig(uint16_t RTC_IT, FunctionalState NewState)
    RTC_ITConfig(RTC_IT_SEC, ENABLE); //使能 RTC 秒中断
    库函数中设置 RTC 计数值的方法是:
    void RTC_SetCounter(uint32_t CounterValue)

    6) 更新配置,设置 RTC 中断分组。

    RTC_ExitConfigMode();//退出配置模式,更新配置

    往备份区域写用户数据的函数是:
    void BKP_WriteBackupRegister(uint16_t BKP_DR, uint16_t Data)

    例如BKP_DR1 写入 0x5050,方法是 :

    BKP_WriteBackupRegister(BKP_DR1, 0X5050);
    同时,有写便有读,读取备份区域指定寄存器的用户数据的函数是:
    uint16_t BKP_ReadBackupRegister(uint16_t BKP_DR)

    7) 编写中断服务函数。

    知识来源  STM32F1 开发指南(库函数版)
     

  • 相关阅读:
    [转] 美股评论:远离波动的噪音
    [转] GDB 下 watch的使用
    [转] Web性能压力测试工具之ApacheBench(ab)详解
    [转] Ubuntu 12.04下LAMP安装配置 (Linux+Apache+Mysql+PHP)
    [转] 在 Linux 中怎样使用cp命令合并目录树
    [转] postgresql常用命令
    [转] 跟着美联储投资
    [转] 智能指针(三):unique_ptr使用简介
    关于前端开发
    [转] 美股评论:美国散户血泪辛酸
  • 原文地址:https://www.cnblogs.com/zengsf/p/7211022.html
Copyright © 2011-2022 走看看