对于msp430的时钟问题

2019-03-24 13:15发布

/******************************************************************/
void Init_Clk( void )
{
    WDTCTL = WDTPW + WDTHOLD;                 // 关看门狗
    BCSCTL3 |= XT2S_2;                        // XT2频率范围设置
    BCSCTL1 &= ~XT2OFF;                       // 打开XT2振荡器
    do
    {
        IFG1 &= ~OFIFG;                       // 清振荡器失效标志
        BCSCTL3 &= ~XT2OF;                    // 清XT2失效标志
        for( uint i = 0x47FF; i>0; i-- );   // 等待XT2频率稳定
    }while (IFG1 & OFIFG);                    // 外部时钟源正常起动了吗?
    BCSCTL2 |= SELM_2 + SELS ;                // 设置MCLK、SMCLK为XT2
}

程序总死在for那里,外部晶振不需要接吧?求指导  我菜鸟哦 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
ly971021598
2019-03-24 23:33
楼主你要确定是否接了外部晶振,如果起动内部8M的晶振的话。
试试这个程序怎么样。
void Init_Clk()
{  
   unsigned int i;
   WDTCTL=WDTPW+WDTHOLD;    //关闭看门狗;
   BCSCTL1&=~XT2OFF;                   //打开XT2振荡器;
  do
    {           
        IFG1&=~OFIFG;                         // 清除振荡器失效标志;
       for(i=0xff;i>0;i--);                          // 延时,等待XT2起振;
    }
   while ((IFG1&OFIFG)!=0);               // 判断XT2是否起振;
BCSCTL2|=SELM_2+SELS;          //选择MCLK、SMCLK为XT2;

}

一周热门 更多>

相关问题

    相关文章