写出msp430f5529的初始化系统时钟函数函数要求FLLREFCLK=1MHzACLK=1MHzMCLK=18MHzSMCLK=45MHz
以下是msp430f5529的初始化系统时钟函数:
#include <msp430.h>
void initClock()
{
// 设置DCO频率为18MHz
UCSCTL0 = 0x0000;
UCSCTL1 = DCORSEL_5;
UCSCTL2 = FLLD_0 + 487;
UCSCTL3 = SELREF__REFOCLK;
UCSCTL4 = SELA__REFOCLK + SELS__DCOCLK + SELM__DCOCLK;
UCSCTL5 = DIVA_0 + DIVS_3 + DIVM_0;
UCSCTL6 = 0x0000;
UCSCTL7 = 0x0000;
UCSCTL8 = SMCLKREQEN + MCLKREQEN + ACLKREQEN;
// 设置ACLK频率为1MHz
UCSCTL4 &= ~SELA_7;
UCSCTL4 |= SELA__REFOCLK;
// 设置SMCLK频率为4.5MHz
UCSCTL4 &= ~SELS_7;
UCSCTL4 |= SELS__DCOCLKDIV;
UCSCTL5 &= ~DIVS_3;
UCSCTL5 |= DIVS_2;
// 设置FLLREFCLK频率为1MHz
UCSCTL3 &= ~SELREF_7;
UCSCTL3 |= SELREF__REFOCLK;
}
该函数的实现步骤如下:
-
设置DCO频率为18MHz:通过UCSCTL1设置DCORSEL为5,UCSCTL2设置FLLD为0,UCSCTL2设置FLLN为487,UCSCTL3设置SELREF为REFOCLK,UCSCTL4设置SELA为REFOCLK,SELS和SELM为DCOCLK,UCSCTL5设置DIVS为3,DIVM为0,从而设置DCO频率为18MHz。
-
设置ACLK频率为1MHz:通过UCSCTL4设置SELA为REFOCLK,从而设置ACLK频率为1MHz。
-
设置SMCLK频率为4.5MHz:通过UCSCTL4设置SELS为DCOCLKDIV,UCSCTL5设置DIVS为2,从而设置SMCLK频率为4.5MHz。
-
设置FLLREFCLK频率为1MHz:通过UCSCTL3设置SELREF为REFOCLK,从而设置FLLREFCLK频率为1MHz。
最后,在程序的main函数中调用该函数即可完成msp430f5529的系统时钟初始化
原文地址: http://www.cveoy.top/t/topic/eFCX 著作权归作者所有。请勿转载和采集!