STM32 RTC 时钟(年月日星期时分秒)

本文详细介绍了STM32微控制器的RTC(实时时钟)模块的配置和应用,包括如何设置年月日星期时分秒,以及RTC的初始化、时间同步和中断处理等关键步骤。
摘要由CSDN通过智能技术生成
/*添加一个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(
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值