RTC_Configuration
Void RTC_Configuration(void)//
实时时钟的初始化配置
{
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR
|
RCC_APB1Periph_BKP,ENABLE);
//
使能
APB1
外设
PWR
(电源控制寄存器)
BKP
(备份寄存器)时钟。
PWR_BackupAccessCmd(ENABLE);
//
允许访问
BKP
域
BKP_DeInit();
//
复位备份域。
#ifdef
RTCClockSource_LSI
RCC_LSICmd(ENABLE);
//
使能内部低速晶振。
While(RCC_GetFlagStatus(RCC_Flag_LSIRDY)==RESET)//
等待
LSI
准备好
{
}
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSI);//
选择
LSI
为
RTC
时钟
#elif
define
RTCClockSource_LSI
RCC_LSEConfig(RCC_LSE_ON);
//LSE
晶振
ON
While(RCC_GetFlagStatus(RCC_Flag_LSERAY)==RESET)//
等待
LSE
准备好
{
}
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);//
选择
LSE
为
RTC
时钟
#endif
RCC_RTCCLKCmd(ENABLE);
//
使能
RTC
时钟
#ifdef
RTC_ClockOutput_ENABLE
//
禁止
Tamper
引脚
BKP_TamperPinCmd(DISABLE);//
为了将
RTCCLK/64
在
Tamper
引脚上输出,
Tamper
功能必
须被禁止
BKP_RTCCalibrationClockOutputCmd(ENABLE);//
允许
RTC
时钟在
Tamper
上输出
#endif
RTC_WaitForSynchro();//
等待寄存器同步
RTC_WaitForLastTask();//
等待上次寄存器写操作完成
RTC_ITConfig(RTC_IT_SEC,ENABLE);//
允许
RTC
秒中断
RTC_WaitForLastTask();//
等待上次寄存器写操作完成
#ifdef RTC_ClockSource_LSI//
设置分频系数
RTC_SetPrescalor(31999);//RTC
周期
=RTCCLK/RTC_PR=(32.000KHz/(31999+1))
#elif define RTC_ClockSource_LSE
RTC_SetPrescaler(32767);// RTC
周期
=RTCCLK/RTC_PR=(32.768KHz/(32767+1))
#endif
RTC_WaitForLastTask();//
等待最近一次对
RTC
寄存器的写操作的完成。
}
最新文章
- Visual Studio 生成事件命令
- IE9 不F12打开控制台,代码不执行。打开后正常
- js 返回并刷新
- HDU 4610 Cards (合数分解,枚举)
- WebView使用详解(一)——Native与JS相互调用(附JadX反编译)
- 使用LabVIEWPC的制备
- Xcode 注释工具的使用
- Ubuntu配置ORB-SLAM2过程中的问题
- 2019 校内赛 RPG的天赋分支(贪心)
- Linux 防火墙iptables开放特定端口
- Rpgmakermv(24 )yep_coreengine
- oracle数据库基础功能
- dell 7447加装SSD
- 【NIFI】 Apache NiFI 之 ExecuteScript处理(一)
- Ascii vs. Binary Files
- Noip往年题目整理
- win7下docker环境搭建nginx+php-fpm+easyswoole开发环境
- 广通软件获“2016年度中国最具影响力IT运维管理软件提供商”殊荣
- ext4.1入门
- Java读取粘贴板内容