中级会员
- 积分
- 356
- 金钱
- 356
- 注册时间
- 2013-11-9
- 在线时间
- 145 小时
|
楼主 |
发表于 2014-5-8 16:40:25
|
显示全部楼层
回复【2楼】正点原子:
---------------------------------
o 我知道了 我在看看
顺便再问一个问题:
我用stm32f103vc 做RTC的时候,按照例程做的,作了一些修改,我将时钟源设置成内部的LSI,第一次运行的时候可以读出值,但是当我重新启动的时候就会出现总是进入函数
void RTC_WaitForSynchro(void)
{
/* Clear RSF flag */
RTC->CRL &= (uint16_t)~RTC_FLAG_RSF;
/* Loop until RSF flag is set */
while ((RTC->CRL & RTC_FLAG_RSF) == (uint16_t)RESET)
{
}
}
中的while循环,成为死循环,这是怎么回事?
还有就是我们现在的外部就只有8M的晶振,怎么设置可以成为RTC的时钟源!我是这样设置的你看对吗?
RCC_HSEConfig(RCC_HSE_ON); //设置外部低速晶振(LSE),使用外设低速晶振
// RCC_LSICmd(ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET) //检查指定的RCC标志位设置与否,等待低速晶振就绪
// while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET)
{
temp++;
delay_ms(20);
}
if(temp>=250)return 1;//初始化时钟失败,晶振有问题
RCC_RTCCLKConfig(RCC_RTCCLKSource_HSE_Div128);
这样也是老进入上面说的while死循环! |
|