[STM8] 这样配置有源晶振对不

[复制链接]
607|5
 楼主| yszong 发表于 2022-4-14 20:55 | 显示全部楼层 |阅读模式
static void RTC_Config(void)

{

  RTC_InitTypeDef RTC_InitStr;

  RTC_TimeTypeDef RTC_TimeStr;

  RTC_DateTypeDef RTC_DateStr;

   

  (CLK->ECKCR) |= (uint8_t)0x20;   

  /* Configures the RTC */

  CLK_RTCClockConfig(CLK_RTCCLKSource_LSE, CLK_RTCCLKDiv_1);

  

  /* Wait for LSE clock to be ready */

  //while(CLK_GetFlagStatus(CLK_FLAG_LSERDY) == RESET);

  while( (CLK->ECKCR) & (uint8_t)(1<<3) == (uint8_t)RESET);

  /* wait for 1 second for the LSE Stabilisation */

  //LSE_StabTime();

  delay_ms(1000);

  

  CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);

  

  RTC_InitStr.RTC_HourFormat = RTC_HourFormat_24;

  RTC_InitStr.RTC_AsynchPrediv = 127;

  RTC_InitStr.RTC_SynchPrediv = 255;

  RTC_Init(&RTC_InitStr);

  

  RTC_TimeStructInit(&RTC_TimeStr);

  RTC_TimeStr.RTC_Hours = 00;

  RTC_TimeStr.RTC_Minutes = 00;

  RTC_TimeStr.RTC_Seconds = 00;

  RTC_SetTime(RTC_Format_BIN, &RTC_TimeStr);

  

  RTC_DateStructInit(&RTC_DateStr);

  //RTC_DateStr.RTC_WeekDay = RTC_Weekday_Tuesday;

  RTC_DateStr.RTC_Date = 2;

  RTC_DateStr.RTC_Month = RTC_Month_February;

  RTC_DateStr.RTC_Year = 19;

  RTC_SetDate(RTC_Format_BIN, &RTC_DateStr);

  

  RTC_WakeUpClockConfig(RTC_WakeUpClock_CK_SPRE_16bits);

  RTC_ITConfig(RTC_IT_WUT, ENABLE);



  /* Enable Interrupts*/

  //enableInterrupts();  //open before

}
zhanghqi 发表于 2022-4-14 20:58 | 显示全部楼层
你使用有源晶振的话,一般是从晶振直接输出时钟到 芯片的OSC_IN脚,你这时要选用外部时钟模式。
juventus9554 发表于 2022-4-14 21:00 | 显示全部楼层
你需要在选项字节里 调整 EXTCLK 位。
dingy 发表于 2022-4-14 21:02 | 显示全部楼层
时钟模式选的不对
wyjie 发表于 2022-4-14 21:04 | 显示全部楼层
把相应寄存器设置改了就行
xxmmi 发表于 2022-4-14 21:07 | 显示全部楼层

唉,还是没有什么结果,算了,多谢大家啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

830

主题

11379

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部