新手入门
- 积分
- 4
- 金钱
- 4
- 注册时间
- 2019-2-19
- 在线时间
- 0 小时
|
1金钱
u8 RTC_Init(void)
{
//¼ì2éêÇ2»êÇμúò»′ÎÅäÖÃê±Öó
u8 temp=0;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); //ê1ÄüPWRoíBKPíaéèê±Öó
PWR_BackupAccessCmd(ENABLE); //ê1Äüo󱸼Ä′æÆ÷·ÃÎê
if (BKP_ReadBackupRegister(BKP_DR1) != 0x5050) //′óÖ¸¶¨μÄo󱸼Ä′æÆ÷ÖD¶á3öêy¾Y:¶á3öáËóëD′èëμÄÖ¸¶¨êy¾Y2»Ïàoõ
{
BKP_DeInit(); //¸′λ±¸·YÇøóò
RCC_LSEConfig(RCC_LSE_ON); //éèÖÃía2¿μíËù¾§Õñ(LSE),ê1óÃíaéèμíËù¾§Õñ
while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET&&temp<250) //¼ì2éÖ¸¶¨μÄRCC±ê־λéèÖÃóë·ñ,μè′yμíËù¾§Õñ¾íD÷
{
temp++;
delay_ms(10);
}
if(temp>=250)return 1;//3õê¼»ˉê±Öóê§°ü,¾§ÕñóDÎêìa
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); //éèÖÃRTCê±Öó(RTCCLK),Ñ¡ÔñLSE×÷ÎaRTCê±Öó
RCC_RTCCLKCmd(ENABLE); //ê1ÄüRTCê±Öó
RTC_WaitForLastTask(); //μè′y×î½üò»′ζÔRTC¼Ä′æÆ÷μÄD′2ù×÷íê3é
RTC_WaitForSynchro(); //μè′yRTC¼Ä′æÆ÷í¬2½
RTC_ITConfig(RTC_IT_SEC, ENABLE); //ê1ÄüRTCÃëÖD¶Ï
RTC_WaitForLastTask(); //μè′y×î½üò»′ζÔRTC¼Ä′æÆ÷μÄD′2ù×÷íê3é
RTC_EnterConfigMode();/// ÔêDíÅäÖÃ
RTC_SetPrescaler(32767); //éèÖÃRTCÔ¤·ÖÆμμÄÖμ
RTC_WaitForLastTask(); //μè′y×î½üò»′ζÔRTC¼Ä′æÆ÷μÄD′2ù×÷íê3é
RTC_Set(2015,1,14,17,42,55); //éèÖÃê±¼ä
RTC_ExitConfigMode(); //íË3öÅäÖÃÄ£ê½
BKP_WriteBackupRegister(BKP_DR1, 0X5050); //ÏòÖ¸¶¨μÄo󱸼Ä′æÆ÷ÖDD′èëóû§3ìDòêy¾Y
}
else//Ïμí3¼ìDø¼Æê±
{
RTC_WaitForSynchro(); //μè′y×î½üò»′ζÔRTC¼Ä′æÆ÷μÄD′2ù×÷íê3é
RTC_ITConfig(RTC_IT_SEC, ENABLE); //ê1ÄüRTCÃëÖD¶Ï
RTC_WaitForLastTask(); //μè′y×î½üò»′ζÔRTC¼Ä′æÆ÷μÄD′2ù×÷íê3é
}
RTC_NVIC_Config();//RCTÖD¶Ï·Ö×ééèÖÃ
RTC_Get();//¸üDÂê±¼ä
return 0; //ok
}
//RTCê±ÖóÖD¶Ï
//ÿÃë′¥·¢ò»′Î
//extern u16 tcnt;
void RTC_IRQHandler(void)
{
if (RTC_GetITStatus(RTC_IT_SEC) != RESET)//ÃëÖóÖD¶Ï
{
RTC_Get();//¸üDÂê±¼ä
}
if(RTC_GetITStatus(RTC_IT_ALR)!= RESET)//ÄÖÖóÖD¶Ï
{
RTC_ClearITPendingBit(RTC_IT_ALR); //ÇåÄÖÖóÖD¶Ï
RTC_Get(); //¸üDÂê±¼ä
printf("Alarm Time:%d-%d-%d %d:%d:%d\n",calendar.w_year,calendar.w_month,calendar.w_date,calendar.hour,calendar.min,calendar.sec);//êä3öÄÖáåê±¼ä
}
RTC_ClearITPendingBit(RTC_IT_SEC|RTC_IT_OW); //ÇåÄÖÖóÖD¶Ï
RTC_WaitForLastTask();
}
|
最佳答案
查看完整内容[请看2#楼]
我的问题解决了, 我的是 stm32f10x_conf.h 这个文件里面屏蔽了#include "stm32f10x_bkp.h和#include "stm32f10x_rtc.h,
|