新手入门
- 积分
- 18
- 金钱
- 18
- 注册时间
- 2020-6-26
- 在线时间
- 6 小时
|
1金钱
为社么i精英版的BKP在待机唤醒后读出来的数据永远都是0,这样我的计数器就无法实现。代码如下下
if (BKP_ReadBackupRegister(BKP_DR1) != 0x5050) //´ÓÖ¸¶¨µÄºó±¸¼Ä´æÆ÷ÖжÁ³öÊý¾Ý:¶Á³öÁËÓëдÈëµÄÖ¸¶¨Êý¾Ý²»Ïàºõ
{
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); //ʹÄÜ WRºÍBKPÍâÉèʱÖÓ
PWR_BackupAccessCmd(ENABLE); //ʹÄܺ󱸼ĴæÆ÷·ÃÎÊ
BKP_DeInit(); //¸´Î»±¸·ÝÇøÓò
RCC_LSEConfig(RCC_LSE_ON); //ÉèÖÃÍⲿµÍËÙ¾§Õñ(LSE),ʹÓÃÍâÉèµÍËÙ¾§Õñ
while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET) //¼ì²éÖ¸¶¨µÄRCC±ê־λÉèÖÃÓë·ñ,µÈ´ýµÍËÙ¾§Õñ¾ÍÐ÷
{
temp++;
delay_ms(10);
}
if(temp>=250)
return 1;//³õʼ»¯Ê±ÖÓʧ°Ü,¾§ÕñÓÐÎÊÌâ
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); //ÉèÖÃRTCʱÖÓ(RTCCLK),Ñ¡ÔñLSE×÷ΪRTCʱÖÓ
RCC_RTCCLKCmd(ENABLE); //ʹÄÜRTCʱÖÓ
RTC_WaitForLastTask(); //µÈ´ý×î½üÒ»´Î¶ÔRTC¼Ä´æÆ÷µÄд²Ù×÷Íê³É
RTC_WaitForSynchro(); //µÈ´ýRTC¼Ä´æÆ÷ͬ²½
RTC_ITConfig(RTC_IT_SEC, ENABLE); //ʹÄÜRTCÃëÖжÏ
RTC_WaitForLastTask(); //µÈ´ý×î½üÒ»´Î¶ÔRTC¼Ä´æÆ÷µÄд²Ù×÷Íê³É
RTC_EnterConfigMode();/// ÔÊÐíÅäÖÃ
RTC_SetPrescaler(32767); //ÉèÖÃRTCÔ¤·ÖƵµÄÖµ
RTC_WaitForLastTask(); //µÈ´ý×î½üÒ»´Î¶ÔRTC¼Ä´æÆ÷µÄд²Ù×÷Íê³É
RTC_Set(2009,12,2,10,0,55); //ÉèÖÃʱ¼ä
RTC_ExitConfigMode(); //Í˳öÅäÖÃģʽ
BKP_WriteBackupRegister(BKP_DR1, 0X5050); //ÏòÖ¸¶¨µÄºó±¸¼Ä´æÆ÷ÖÐдÈëÓû§³ÌÐòÊý¾Ý
}
else//ϵͳ¼ÌÐø¼ÆÊ±
{
RTC_WaitForSynchro(); //µÈ´ý×î½üÒ»´Î¶ÔRTC¼Ä´æÆ÷µÄд²Ù×÷Íê³É
RTC_ITConfig(RTC_IT_SEC, ENABLE); //ʹÄÜRTCÃëÖжÏ
RTC_WaitForLastTask(); //µÈ´ý×î½üÒ»´Î¶ÔRTC¼Ä´æÆ÷µÄд²Ù×÷Íê³É
}
每次唤醒后都重更新进入设置初始化,永远不会走下面部分?,难道是初始化配置不对么
|
|