打印
[STM32F0]

为什么RTC选择LSE后就不工作了

[复制链接]
2649|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
azhangxingweia|  楼主 | 2018-1-25 10:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
se, RTC, rc, LSI, ck
//#define RTC_CLOCK_SOURCE_LSE   /* 选择LSE  */
#define RTC_CLOCK_SOURCE_LSI  // LSI 也可以
                                //

#define BKP_VALUE    0x32F0
RTC_TimeTypeDef   RTC_TimeStructure;
RTC_InitTypeDef   RTC_InitStructure;
RTC_AlarmTypeDef  RTC_AlarmStructure;

__IO uint32_t AsynchPrediv = 0, SynchPrediv = 0;//同步分频值和非同步分频值

//void RTC_Init()               
//{
// if(RTC_ReadBackupRegister(RTC_BKP_DR0) != BKP_VALUE)
// {
//   RTC_Config();
// }

//}
/**
  * @brief  Configure the RTC peripheral by selecting the clock source.
  * @param  None
  * @retval None
  */
void RTC_Config(void)
{
   /* 使能 PWR 时钟 */
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);

  /* 允许访问RTC */
  PWR_BackupAccessCmd(ENABLE);
   
#if defined (RTC_CLOCK_SOURCE_LSI)  /* 当使用LSI 作为 RTC 时钟源*/
/* The RTC Clock may varies due to LSI frequency dispersion. */   
  /* 使能 LSI 振荡 */
  RCC_LSICmd(ENABLE);

  /* 等待到 LSI 预备*/  
  while(RCC_GetFlagStatus(RCC_FLAG_LSIRDY) == RESET)
  {
  }

  /* 把RTC 时钟源配置为LSI */
  RCC_RTCCLKConfig(RCC_RTCCLKSource_LSI);
   /* 定襎同步分频值和异步分频值 */
  SynchPrediv  = 0x18F;
  AsynchPrediv = 0x63;

#elif defined (RTC_CLOCK_SOURCE_LSE) /* 当使用LSE 最为 RTC 时钟源 */
  /*使能 LSE 振荡 */
  RCC_LSEConfig(RCC_LSE_ON);

  /*等待 LSE 预备 */  
  while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET)
  {
  }

  /* 把RTC 时钟源配置为使用LSE */
  RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);
     /* 定襎同步分频值和异步分频值 */
  SynchPrediv  = 0x18F;
  AsynchPrediv = 0x63

#else
  #error Please select the RTC Clock source inside the main.c file
#endif /* RTC_CLOCK_SOURCE_LSI */
  
  /* 使能RTC时钟 */
  RCC_RTCCLKCmd(ENABLE);

  /* 等待 RTC APB 寄存器同步 */
  RTC_WaitForSynchro();
}
沙发
hxfxt| | 2018-1-25 10:16 | 只看该作者
是不是LSE外部低频晶振没有起振?

使用特权

评论回复
板凳
azhangxingweia|  楼主 | 2018-1-25 10:37 | 只看该作者
hxfxt 发表于 2018-1-25 10:16
是不是LSE外部低频晶振没有起振?

起振了,但是刚才我用示波器看8M的晶振没起振

使用特权

评论回复
地板
dongnanxibei| | 2018-1-25 15:32 | 只看该作者
那就是晶振电路的问题。

使用特权

评论回复
5
azhangxingweia|  楼主 | 2018-1-25 16:44 | 只看该作者
dongnanxibei 发表于 2018-1-25 15:32
那就是晶振电路的问题。

解决了 stm32f030 使用LSI掉电使用后备电池不能走时。要改用LSE要系统全掉电并重启,否则LSE无法就绪。

使用特权

评论回复
6
玛尼玛尼哄| | 2018-1-25 21:08 | 只看该作者
azhangxingweia 发表于 2018-1-25 16:44
解决了 stm32f030 使用LSI掉电使用后备电池不能走时。要改用LSE要系统全掉电并重启,否则LSE无法就绪。 ...

那就是RTC使用的时钟是LSE的。

使用特权

评论回复
7
lmn2005| | 2023-4-14 20:16 | 只看该作者
玛尼玛尼哄 发表于 2018-1-25 21:08
那就是RTC使用的时钟是LSE的。

意思是说电池也得断一下电?

使用特权

评论回复
8
SantaBunny| | 2023-4-16 18:32 | 只看该作者
应该是晶振电路的问题

使用特权

评论回复
9
Stahan| | 2023-4-19 23:50 | 只看该作者
要全部断电重启吧

使用特权

评论回复
10
guoyt| | 2023-4-21 23:29 | 只看该作者
是不是LSE外部低频晶振没有起振?

使用特权

评论回复
11
jiaxw| | 2023-4-21 23:31 | 只看该作者
晶振电路的问题。

使用特权

评论回复
12
zhuww| | 2023-4-21 23:32 | 只看该作者
解决了 stm32f030 使用LSI掉电使用后备电池不能走时。

使用特权

评论回复
13
spark周| | 2023-4-21 23:34 | 只看该作者
要改用LSE要系统全掉电并重启

使用特权

评论回复
14
zhuww| | 2023-4-21 23:35 | 只看该作者
嗯,否则LSE无法就绪

使用特权

评论回复
15
liliang9554| | 2023-4-21 23:36 | 只看该作者
那就是RTC使用的时钟是LSE的。

使用特权

评论回复
16
zhuww| | 2023-4-21 23:38 | 只看该作者
意思是说电池也得断一下电?

使用特权

评论回复
17
hanwe| | 2023-4-21 23:40 | 只看该作者
应该是晶振电路的问题

使用特权

评论回复
18
guoyt| | 2023-4-21 23:42 | 只看该作者
要全部断电重启吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

106

帖子

1

粉丝