打印

关于STM8S的晶体自动切换的问题

[复制链接]
5311|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
visionliweixin|  楼主 | 2012-12-28 21:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我使用的是STM8S207R8+STVD+ST Link,上电时选择的是外部16M晶体
void CLK_Configuration(void)
{
  ErrorStatus status = ERROR;
  CLK_DeInit();
  CLK_HSECmd(ENABLE);
  CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);
  CLK_ClockSwitchCmd(ENABLE);
  status = CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSE, DISABLE,
                                 CLK_CURRENTCLOCKSTATE_DISABLE);
  CLK_ITConfig(CLK_IT_CSSD, ENABLE);
  CLK_ClockSecuritySystemEnable();
}
因为要省电,工作60秒后进入Auto Wakeup模式
  AWU_Cmd(ENABLE);
  AWU_Init(AWU_TIMEBASE_512MS);
  
当下了halt后,外部晶体停振,系统启用了内部的HSI/8 = 2MHz,后来唤醒退出AWU模式后,系统就一直
使用2MHz的频率,不能自动切换到外部16M,而且就算了重下
  CLK_HSECmd(ENABLE);
  CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);   
也不行,甚至重CALL  CLK_Configuration();还是一样,再也不能切换到外部晶体,请大家帮忙分析,谢谢!
沙发
visionliweixin|  楼主 | 2013-1-2 14:08 | 只看该作者
为何没人回答呀

使用特权

评论回复
板凳
visionliweixin|  楼主 | 2013-1-3 07:18 | 只看该作者
还是没人回答呀,看来大家都在过元旦,只好结贴了

使用特权

评论回复
地板
IJK| | 2013-1-3 09:06 | 只看该作者
首先,调用CLK_HSECmd(ENABLE)后,外部16M晶体应该能重新起振。

其次,个人觉得,应该先调用CLK_ClockSwitchConfig,然后再调用CLK_ClockSwitchCmd(ENABLE); 才对。

使用特权

评论回复
5
visionliweixin|  楼主 | 2013-4-17 11:47 | 只看该作者
终于找到问题了,要把安全时钟全能关掉就可以了
CLK_ITConfig(CLK_IT_CSSD, ENABLE);
CLK_ClockSecuritySystemEnable();
这两句不能加上

使用特权

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

本版积分规则

0

主题

6

帖子

0

粉丝