/*添加一个LED灯1秒闪一下*/
#include "rtc.h"
#include "usart.h"
#include "timer.h"
static void RCC_Configuartion(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
}
static void GPIO_Configuartion(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin= GPIO_Pin_6;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
static void LED_Init(void)
{
RCC_Configuartion();
GPIO_Configuartion();
}
/***************************************************/
static struct DATETABLE pDate;
static void RTC_Configuartion(void)
{
//使能电源时钟和备份区域时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR|RCC_APB1Periph_BKP, ENABLE);
//使能RTC和后备寄存器访问
PWR_BackupAccessCmd(ENABLE);
BKP_DeInit(); //复位备份区域
RCC_LSEConfig(RCC_LSE_ON); //开启外部低速振荡器
while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) != SET); //等待外部低速时钟晶振就绪
// 使能RTC内部40K 时钟
// RCC_LSICmd(ENABLE);
// while(RCC_GetFlagStatus(RCC_FLAG_LSIRDY) != SET);
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); //选择RTC外部时钟为低速晶振 32.768
RCC_RTCCLKCmd(ENABLE); //使能RTC时钟
RTC_WaitForSynchro(); //等待RTC寄存器同步
RTC_WaitForLastTask(); //等待写RTC寄存器完成
RTC_ITConfig(RTC_IT_SEC, ENABLE); //使能RTC寄存器秒中断
RTC_WaitForLastTask(); //等待写RTC寄存器完成
RTC_EnterConfigMode(); //允许配置
RTC_SetPrescaler(
STM32 RTC 时钟(年月日星期时分秒)
最新推荐文章于 2024-08-13 15:52:32 发布
本文详细介绍了STM32微控制器的RTC(实时时钟)模块的配置和应用,包括如何设置年月日星期时分秒,以及RTC的初始化、时间同步和中断处理等关键步骤。
摘要由CSDN通过智能技术生成