koowana71 发表于 2018-8-2 11:36:28

求助STM32F103VC VBAT用3.0V电池供电,VDD掉电时,32.768晶体停振

同时Backup中的内容消失。
u8 RTC_Init(void)
{
        u8 temp=0;
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);


        BackupData=BKP_ReadBackupRegister(BKP_DR1);
        if (BackupData != 0x4321)
        {
//                        Red_LED_On();

                        PWR_BackupAccessCmd(ENABLE);
               
                        BKP_DeInit();       
                        RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);                //Ò»µ©Ñ¡¶¨²»Äܸü¸Ä£¬³ý·Ç¸´Î»ºó±¸Óò
                        RCC_LSEConfig(RCC_LSE_ON);                        //±ØÐëÔÚÇ°ÃæµÄº¯ÊýÖ®ºóÓÃ
               
                        BKP_TamperPinCmd(DISABLE);

               
               
                while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET)
                {
                        temp++;
                        Delay_mS(10);
                        if(temp>=250)
                        {
                                return 1;
                        }
                }
               
               

               
                RCC_RTCCLKCmd(ENABLE);
//                RTC_WaitForLastTask();
                RTC_WaitForSynchro();
               
                RTC_WaitForLastTask();
                //RTC_ITConfig(RTC_IT_SEC, ENABLE);        //±ØÐëÔڸú¯Êýǰµ÷ÓÃÇ°ÃæµÄº¯Êý       
               

       
                RTC_EnterConfigMode();
               
               
                RTC_WaitForLastTask();               
                RTC_SetPrescaler(32767);                        //±ØÐëÔڸú¯Êýǰµ÷ÓÃÇ°ÃæµÄº¯Êý
               
                RTC_WaitForLastTask();
                RTC_Set(2017,12,30,07,58,00);

               
                RTC_ExitConfigMode();
                RTC_WaitForLastTask();
                BKP_WriteBackupRegister(BKP_DR1, 0x4321);
                RTC_WaitForLastTask();
               

                BackupData=BKP_ReadBackupRegister(BKP_DR1);
                Delay_mS(10);
                //PWR_BackupAccessCmd(DISABLE);
                Red_LED_Off();
               
        }
       
        else//??????
        {
                RTC_WaitForSynchro();
                RTC_ITConfig(RTC_IT_SEC, ENABLE);
                RTC_WaitForLastTask();
        }
       
       

        RTC_Get_Simple();//¸üÐÂʱ¼ä
        return 0; //ok
}

feixiang20 发表于 2018-8-2 22:17:42

查看晶振旁的电容有没有问题,测量电压对不对,或加个电阻在侧
页: [1]
查看完整版本: 求助STM32F103VC VBAT用3.0V电池供电,VDD掉电时,32.768晶体停振