APM32F103 开启RTC外部时钟无法运行
案例采用的是:APM32F10x_SDK_V1.8\Examples\RTC\RTC_Second
原案例是使用内部RTC时钟源,直接编译,烧录可以正常运行。将RTC时钟源配置成外部时钟源,则不能运行。
怀疑是外部的晶振问题,换了也是一样。
- 在不做任何修改的情况下,烧录到STM32F103VC上,则可以跑起来。
RTC配置函数代码如下:
void RTC_Config(void)
{
RCM_EnableAPB1PeriphClock((RCM_APB1_PERIPH_T)RCM_APB1_PERIPH_PMU);
PMU_EnableBackupAccess();
// RCM_EnableLSI();
// while(RCM_ReadStatusFlag(RCM_FLAG_LSIRDY) == RESET);
// RCM_ConfigRTCCLK(RCM_RTCCLK_LSI);
// RCM_DisableLSI();
RCM_ConfigLSE(RCM_LSE_OPEN);
while(RCM_ReadStatusFlag(RCM_FLAG_LSERDY) == RESET);//RCM_FLAG_HSERDY
RCM_ConfigRTCCLK(RCM_RTCCLK_LSE);//使能外部低速时钟
RCM_EnableRTCCLK();
RTC_WaitForSynchro();
RTC_WaitForLastTask();
RTC_EnableInterrupt(RTC_INT_SEC);//使能RTC秒更新中断
RTC_WaitForLastTask();
RTC_ConfigPrescaler(32767);
RTC_WaitForLastTask();
NVIC_EnableIRQRequest(RTC_IRQn, 0, 0);
}
|