#include "stm32f10x.h"
void MyRTC_Init(void)
{
//1.开启PWR和BKP的时钟 使能BKP和RTC的访问
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP,ENABLE);
PWR_BackupAccessCmd(ENABLE);
//2.开启LSE时钟 并等待LSE时钟启动完成
//共3个参数 LSE_OFF表示LSE振荡器关闭 LSE_ON表示打开
//LSE_Bypass 表示时钟旁路 意思是不接晶振 直接从OSC32_IN这个引脚输入一个指定频率的信号当做时钟源
RCC_LSEConfig(RCC_LSE_ON);
//等待LSE启动完成
while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) != SET);
//选择RTCCLK时钟源
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);
//使能时钟
RCC_RTCCLKCmd(ENABLE);
//等待同步 函数内部自带while等待 调用即可实现等待效果
RTC_WaitForSynchro();
//等待上一次写入操作完成
RTC_WaitForLastTask();
//要将LSE的32.768KHz频率分频为1分频,其中 减1 是因为计数值包含0
RTC_SetPrescaler(32768 - 1);//自带进入和退出配置模式的代码
RTC_WaitForLastTask();
//给一个32位的秒计数器
RTC_SetCounter(1672588795);
RTC_WaitForLastTask();
}