// 时钟初始化程序
void Clock_Init()
{
unsigned char i;
P5SEL=0X0C;
P7SEL=0X00;
//_bis_SR_register(SCG0);
UCSCTL6=0X4001; //打开XT2,XT1,SMCLK
UCSCTL4|=SELM_5+SELS_5; //MCLK,SMCLK都选择XT2
UCSCTL5|=DIVS_3+DIVM_0; //MCLK不分频,SMCLK8分频
do
{
UCSCTL7 &= ~(XT2OFFG); // Clear XT1 & DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear OSC Fault flag
for (i = 0xFF; i > 0; i--) ; // Time for flag to set
}while ( (SFRIFG1 & OFIFG) );
}
上面那个程序中do_while语句跳不出来,一直在执行,如果把while条件直接屏蔽变为while(0),就可以跳出循环了,但是这个子函数必须得一步一步烧写,点击go会导致串口信息发送回收不匹配,比如说不管你发送多少字符,回收的不是80就是00
此帖出自
小平头技术问答
一周热门 更多>