搜档网
当前位置:搜档网 › msp430时钟初始化实例

msp430时钟初始化实例

/******************************************************************************
函数名称:void InitSysClk(void)
函数功能:初使化系统时钟
入口参数:无
出口参数:无
作者:小河
备注:此函数适合于MSP430X54X

*******************************************************************************/
void InitSysClk(void)
{

//系统时钟初使化
P5SEL |=(BIT2+BIT3);
//P5DIR &=~(BIT2+BIT3);
UCSCTL6 &= ~(XT2OFF+XT2BYPASS+XT1DRIVE1+XT1DRIVE0+XT2DRIVE1+XT2DRIVE0+XCAP0+XCAP1); //打开XT2振荡器
UCSCTL6 |=XT2DRIVE0;
do
{
UCSCTL7 &= ~XT2OFFG; //清除振荡器XT2失效标志
SFRIFG1 &= ~OFIFG; // 清除振荡器失效标志
//上面这句必须有,否则起振了也不会分配成功
}
while (UCSCTL7 & XT2OFFG); //判断XT2是否起振
UCSCTL0 =0X1F00; //DCOx=31,MODx=0
UCSCTL1_L =0x50; //23.7-54.1M范围
UCSCTL2_H =0x20; //fDCOCLK/4
UCSCTL2_L =7; //N=7;
UCSCTL3 =SELREF__XT2CLK+FLLREFDIV__12; //选择XT2CLK做为DCO比较频率,12分频

do
{
UCSCTL7 &=~DCOFFG;
}while (UCSCTL7 & DCOFFG);

UCSCTL5 =0X00;
//MCLK选择DCOCLK=32M,SMCLK选择DCOCLKDIV=16M,ACLK选择内部低频晶振,32.768KHz
UCSCTL4 =(SELM__DCOCLK+SELS__DCOCLKDIV+SELA__REFOCLK);

}

说明:MSP430F5X系列时钟允许最高时钟频率达32MHz,,此程序MCLK配置到了最高运行时钟32M

相关主题