MSP430外部晶振问题

2019-03-24 10:30发布

我用的是MSP4305438A,打算外接个25M的外部晶振。初始化时钟程序如下:


void Clck_Init()
{
   unsigned int i;
   P4DIR |= BIT0;//初始化P4.0
   P5SEL |= 0X0C;//选择外部高频晶振
   UCSCTL6 &=~ XT2OFF;//XT2振荡器使能
   UCSCTL3 |= SELREF_2;//FLLref = REFO
   UCSCTL4 |= SELA_2;//ACLK=REFO,SMCLK=DCO,MCLK=DCO
   do
    {
        UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);// Clear XT2,XT1,DCO fault flags                                            
        SFRIFG1 &= ~OFIFG;//清楚错误标志位
    }while(SFRIFG1 & OFIFG);//判断是否正确起振
   P4OUT &=~ BIT0;//起振指示
   for(i=0; i<0XFFFF; i++);
   for(i=0; i<0XFFFF; i++);
   P4OUT |= BIT0;
   UCSCTL6 |= XT2DRIVE_3;//选择外部振荡器频率范围
   UCSCTL4 |= SELM_5 + SELS_5 + SELA_3;//MCLK=25M,SMCLK=25M,ACLK=DCO
}





用25M的晶振使LED灯每秒翻转一次,结果程序卡死在delay函数中。如果把这个函数注释掉来使用默认晶振LED是可以翻转的。之前外接8M的晶振,用同样的Clck_init()函数没出过问题。本来觉得是晶振的问题,可是换了以后还是这样。项目过几天就要收工了,现在卡死在这里很急。求助下各路大神,是这段程序有问题么?
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
a2656693
2019-03-24 21:01
 精彩回答 2  元偷偷看……0人看过

一周热门 更多>

相关问题

    相关文章