在使用外部晶振的时候,我应该已经打开了XT2,在测管脚的输出时,也有我需要的频率,4MHz,但是,程序一直在do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG); //Clear XT2,XT1,DCO fault flags
SFRIFG1 &= ~OFIFG; //Clear fault flags
}while (SFRIFG1&OFIFG);这段程序里走,导致后面的程序执行不了。。
具体代码如下
P1DIR |= BIT0;
P1SEL |= BIT0; //可以看ACLK的频率
P2DIR |= BIT2;
P2SEL |= BIT2; //SMCLK
P7DIR |= BIT7;
P7SEL |= BIT7; //MCLK
P5SEL |= BIT2+BIT3;
UCSCTL6 &= ~XT2OFF; //打开XT2
UCSCTL4 |= SELM__XT2CLK + SELS__XT2CLK; // MCLK =SMCLK= XT2 HF XTAL (safe)
__bic_SR_register(SCG0); //Enable the FLL control loop
__delay_cycles(8192);
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG); //Clear XT2,XT1,DCO fault flags
SFRIFG1 &= ~OFIFG; //Clear fault flags
}while (SFRIFG1&OFIFG);