程序没问题吧,是不是晶振没有起振啊,可以测测晶振引脚的电压和波形,看看是不是真的没有起振。
void InitSys(void)
{ WDTCTL=WDTPW+WDTHOLD; //关闭看门狗 char i; BCSCTL1&=~XT2OFF; //打开XT2晶振 do { IFG1&=~OFIFG; //时钟错误标志位清零 for(i=0;i<100;i++) _NOP(); } while((IFG1&OFIFG)!=0); //检测时钟运行是否正常,正常则跳出循环 BCSCTL2|=SELM1+SELS; //时钟频率MCLK=7.3728MHz BCSCTL2|=DIVS_3;//+DIVM_3; //SMCLK和MCLK的时钟频率采用8分频SMCLK、MCLK=7.3728/8 =0.9216 MHz STLC_SEL&=~(BIT6+BIT7); STLC_DIR|=(BIT6+BIT7); //设置选通端口 _EINT(); //打开全局中断控制
}
这是我用过的,149的,如果你怕是程序问题,改改试试看。 |