STM32的RTC闹钟实验,采用库函数实现,使用方便,简单
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 10571 2018-07-23 14:56 stm32的RTC闹钟实验app
tc.c
文件 1109 2017-05-23 12:24 stm32的RTC闹钟实验app
tc.h
文件 136014 2018-10-25 09:29 stm32的RTC闹钟实验moban.map
....... 71966 2018-11-15 16:51 stm32的RTC闹钟实验moban.uvguix.Administrator
....... 71924 2018-11-15 16:50 stm32的RTC闹钟实验moban.uvguix_Administrator.bak
....... 23555 2018-10-25 09:32 stm32的RTC闹钟实验moban.uvoptx
....... 22480 2018-10-25 09:29 stm32的RTC闹钟实验moban.uvprojx
文件 64039 2018-10-25 09:29 stm32的RTC闹钟实验moban_moban.dep
....... 23555 2018-10-25 09:29 stm32的RTC闹钟实验moban_uvoptx.bak
....... 21184 2018-07-23 14:49 stm32的RTC闹钟实验moban_uvprojx.bak
文件 3662 2018-10-25 09:29 stm32的RTC闹钟实验outputcore_cm3.crf
文件 118 2018-10-25 09:29 stm32的RTC闹钟实验outputcore_cm3.d
文件 10852 2018-10-25 09:29 stm32的RTC闹钟实验outputcore_cm3.o
文件 347858 2018-10-25 09:29 stm32的RTC闹钟实验outputdelay.crf
文件 1745 2018-10-25 09:29 stm32的RTC闹钟实验outputdelay.d
文件 383200 2018-10-25 09:29 stm32的RTC闹钟实验outputdelay.o
文件 354479 2018-10-25 09:29 stm32的RTC闹钟实验outputincludes.crf
文件 2024 2018-10-25 09:29 stm32的RTC闹钟实验outputincludes.d
文件 385692 2018-10-25 09:29 stm32的RTC闹钟实验outputincludes.o
文件 354556 2018-10-25 09:29 stm32的RTC闹钟实验outputmain.crf
文件 1876 2018-10-25 09:29 stm32的RTC闹钟实验outputmain.d
文件 386664 2018-10-25 09:29 stm32的RTC闹钟实验outputmain.o
文件 346981 2018-10-25 09:29 stm32的RTC闹钟实验outputmisc.crf
文件 1706 2018-10-25 09:29 stm32的RTC闹钟实验outputmisc.d
文件 382728 2018-10-25 09:29 stm32的RTC闹钟实验outputmisc.o
文件 344664 2018-10-25 09:29 stm32的RTC闹钟实验outputmoban.axf
文件 205 2018-11-15 16:51 stm32的RTC闹钟实验outputmoban.build_log.htm
文件 15441 2018-10-25 09:29 stm32的RTC闹钟实验outputmoban.hex
文件 59678 2018-10-25 09:29 stm32的RTC闹钟实验outputmoban.htm
文件 1182 2018-10-25 09:29 stm32的RTC闹钟实验outputmoban.lnp
............此处省略163个文件信息
#include “includes.h“
#include “rtc.h“
//第一次配置的时候更改这个值,并且断开电池和电源一段时间,保证电容电量也放完,或者短接vbat和GND
/*
其实,在32.768K的晶振引脚上并个上1M(>1m也可以)的电阻就没事了,哪有那么多问题啊。
主要是STM32的LSE反馈电阻有点大,并个电阻,就能减小反馈电阻,提高启振系数。相应的,LSE的功耗就会大一点。
不过,没关系,STM32在使用外部电源时,内部软开关会把LSE的电源切换到外部电源的。
1个40mAH的小电池,用3年应该没问题。
3年,你这个产品还会不会还在使用都是个问题了。说不定早升级了。
*/
#define data_change 0x4456
#define RTCAlarm_Way 0 //0中断线方案,1 原子方案
_calendar_obj calendar;//时钟结构体
static void RTC_NVIC_Config(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQn; //RTC全局中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能该通道中断
NVIC_Init(&NVIC_InitStructure);
#if (RTCAlarm_Way==0)
NVIC_InitStructure.NVIC_IRQChannel = RTCAlarm_IRQn; //闹钟中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; //比RTC全局中断的优先级高
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
#endif
}
#if (RTCAlarm_Way==0)
static void RTC_Alarm_EXIT(void)
{
EXTI_InitTypeDef EXTI_InitStructure;
EXTI_ClearITPendingBit(EXTI_Line17);
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Line = EXTI_Line17;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
}
#endif
//实时时钟配置
//初始化RTC时钟同时检测时钟是否工作正常
//BKP->DR1用于保存是否第一次配置的设置
//返回0:正常
//其他:错误代码
u8 RTC_Init(void)
{
//检查是不是第一次配置时钟
u8 temp=0;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP ENABLE); //使能PWR和BKP外设时钟
RCC_RTCCLKCmd(ENABLE);
PWR_BackupAccessCmd(ENABLE); //使能后备寄存器访问
if (BKP_ReadBackupRegister(BKP_DR1) != data_change) //从指定的后备寄存器中读出数据:读出了与写入的指定数据不相乎
{
BKP_DeInit(); //复位备份区域
RCC_LSEConfig(RCC_LSE_ON); //设置外部低速晶振(LSE)使用外设低速晶振
while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET&&temp<250) //检查指定的RCC标志位设置与否等待低速晶振就绪
{
temp++;
delay_ms(10);
}
if(temp>=250)
{
printf(“jingzhen-error
“);
return 1;//初始化时钟失败晶振有问题
}
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); //设置RTC时钟(RTCCLK)选择LSE作为RTC时钟
RCC_RTCCLKCmd(ENABLE); //使能RTC时钟
RTC_WaitForSynchro(); //等待RTC寄存器(RTC_CNTRTC_ALR和RTC_PRL)与RTC APB时钟同步
RTC_WaitForLastTask(); //等待最近一次对RTC寄存器的写操作完成
RTC_ITConfig(RTC_IT_SEC ENABLE); //使能RTC秒中断
RTC_ITConfig(RTC_IT_ALR ENABLE); //使能RTC闹钟秒中断
RTC_WaitForLastTask(); //等待最近一次对RTC寄存器的写操作完成
RTC_EnterConfigMode(); // 允许配置
RTC_SetPrescaler(32767); //设置RTC预分频的值
RTC_WaitForLastTask(); //等待最近一次对RTC寄存器的写操作完成
RTC_ExitConfigMode(); //退出配置模式
BKP_WriteBackupRegister(BKP_DR1 data_change); //向指定的后备寄存器中写入用户程序数据
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 10571 2018-07-23 14:56 stm32的RTC闹钟实验app
tc.c
文件 1109 2017-05-23 12:24 stm32的RTC闹钟实验app
tc.h
文件 136014 2018-10-25 09:29 stm32的RTC闹钟实验moban.map
....... 71966 2018-11-15 16:51 stm32的RTC闹钟实验moban.uvguix.Administrator
....... 71924 2018-11-15 16:50 stm32的RTC闹钟实验moban.uvguix_Administrator.bak
....... 23555 2018-10-25 09:32 stm32的RTC闹钟实验moban.uvoptx
....... 22480 2018-10-25 09:29 stm32的RTC闹钟实验moban.uvprojx
文件 64039 2018-10-25 09:29 stm32的RTC闹钟实验moban_moban.dep
....... 23555 2018-10-25 09:29 stm32的RTC闹钟实验moban_uvoptx.bak
....... 21184 2018-07-23 14:49 stm32的RTC闹钟实验moban_uvprojx.bak
文件 3662 2018-10-25 09:29 stm32的RTC闹钟实验outputcore_cm3.crf
文件 118 2018-10-25 09:29 stm32的RTC闹钟实验outputcore_cm3.d
文件 10852 2018-10-25 09:29 stm32的RTC闹钟实验outputcore_cm3.o
文件 347858 2018-10-25 09:29 stm32的RTC闹钟实验outputdelay.crf
文件 1745 2018-10-25 09:29 stm32的RTC闹钟实验outputdelay.d
文件 383200 2018-10-25 09:29 stm32的RTC闹钟实验outputdelay.o
文件 354479 2018-10-25 09:29 stm32的RTC闹钟实验outputincludes.crf
文件 2024 2018-10-25 09:29 stm32的RTC闹钟实验outputincludes.d
文件 385692 2018-10-25 09:29 stm32的RTC闹钟实验outputincludes.o
文件 354556 2018-10-25 09:29 stm32的RTC闹钟实验outputmain.crf
文件 1876 2018-10-25 09:29 stm32的RTC闹钟实验outputmain.d
文件 386664 2018-10-25 09:29 stm32的RTC闹钟实验outputmain.o
文件 346981 2018-10-25 09:29 stm32的RTC闹钟实验outputmisc.crf
文件 1706 2018-10-25 09:29 stm32的RTC闹钟实验outputmisc.d
文件 382728 2018-10-25 09:29 stm32的RTC闹钟实验outputmisc.o
文件 344664 2018-10-25 09:29 stm32的RTC闹钟实验outputmoban.axf
文件 205 2018-11-15 16:51 stm32的RTC闹钟实验outputmoban.build_log.htm
文件 15441 2018-10-25 09:29 stm32的RTC闹钟实验outputmoban.hex
文件 59678 2018-10-25 09:29 stm32的RTC闹钟实验outputmoban.htm
文件 1182 2018-10-25 09:29 stm32的RTC闹钟实验outputmoban.lnp
............此处省略163个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)