acoo21st1980092 发表于 2011-7-15 13:54:55

请教一个关于STM8时钟切换的问题

在使用STM8S-DISCOVERY进行时钟切换时,切换HSI至HSE OK;
但由HSI切换至LSI 失败,目前仍不清楚原因。
两种切换的代码如下:
  /* Switch current clock to external high speed clock */
while(CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO,
                              CLK_SOURCE_HSE,
                              DISABLE,
                              CLK_CURRENTCLOCKSTATE_DISABLE) == ERROR);
经调试,结果OK.
  /* Switch current clock to inner low speed clock */
 CLK_LSICmd(ENABLE);
  while(CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO,
                          CLK_SOURCE_LSI,
                          DISABLE,
                          CLK_CURRENTCLOCKSTATE_DISABLE) == ERROR);
调试结果不成功,上电复位后时钟一直处于复位时钟模式(HSI/8),不能切换至LSI。
请教各位大侠,先谢谢了!

hui235 发表于 2011-7-19 23:51:20

RE:请教一个关于STM8时钟切换的问题

不管是HSI,HSE,LSI,使用前一定要确定clock已经稳定,
比如系统要用HSI,要用:
while( !CLK_GetFlagStatus(CLK_FLAG_HSIRDY)){}
去判断HSI是不是已经ready,
同理,在switch clock之前要侦测要选择的clock是不是ready,
页: [1]
查看完整版本: 请教一个关于STM8时钟切换的问题