实验:将MCLK和SMCLK配置为XT1(F5529的XT1为32.768KHZ)
/*1.配置IO口5.4和5.5为XT1功能。*/
/*2.配置XCAP为XCAP_3,即12PF的电容。*/
/*3.清除XT1OFF标志位。*/
/*4.等待XT1起振。*/
#include
void main(void){
P1SEL |= BIT0;P1DIR |= BIT0;//测量ACLK用
P2SEL |= BIT2;P2DIR |= BIT2;//测量SMCLK用
P7SEL |= BIT7;P7DIR |= BIT7;//测量MCLK用
P5SEL |= BIT4|BIT5; //配置为XT1功能,电路板上晶振接于这两脚
UCSCTL6 |= XCAP_3; //配置电容为12pF
UCSCTL6 &= ~XT1OFF; //使能XT1
/*下面是很重要的一步:*/
/* XT1刚刚起振的时候可能有错误,导致时钟错误标志位置位,必须先清零*/
/*OFIFG即Osc Fault Flag,位于SFRIFG1中*/
while(SFRIFG1 & OFIFG) { //如果有时钟错误
UCSCTL7 &=~(XT2OFFG+DCOFFG+XT1LFOFFG); //清除3种时钟错误标志
SFRIFG1&=~(OFIFG);} //清除时钟错误标志位
UCSCTL4&=(UCSCTL4&(~(SELS_7|SELM_7)))|SELS_0|SELM_0; //将SMCLK和MCLK时钟源配置为XT1
}