void CLK_Init(void)
{
/* 使用外部晶振
CLK_DeInit();
CLK_HSECmd(ENABLE);
while(SET != CLK_GetFlagStatus(CLK_FLAG_HSERDY));
CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);
CLK_ClockSwitchCmd(ENABLE); //--> 使能时钟切换功能
CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO,CLK_SOURCE_HSE,DISABLE,CLK_CURRENTCLOCKSTATE_ENABLE);
*/
///* 使用内部晶振
CLK_DeInit();
CLK_HSICmd(ENABLE);
while(SET != CLK_GetFlagStatus(CLK_FLAG_HSIRDY));
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
CLK_ClockSwitchCmd(ENABLE); // --> 使能时钟切换功能
CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO,CLK_SOURCE_HSI,DISABLE,CLK_CURRENTCLOCKSTATE_ENABLE);
//*/
}
上面的代码碰到问题,当程序跑到这里后 while(SET != CLK_GetFlagStatus(CLK_FLAG_HSIRDY)); 就一直停在这里,内部晶振外部晶振都试过了,2个都停在这个位置。
我自己用小程序调试又没有问题,用当前这个程序就出现这个问题。
各位大神,有没有什么方面需要注意的设置或者什么地方需要注意的吗?
因为公司要搞项目,需要用到stm8s207,也是刚接触的iar for stm8, 平时都是用keil编译的。求助。谢谢了
此帖出自
小平头技术问答
一周热门 更多>