MSP430F5529 系统时钟初始化函数 - FLLREFCLK=1MHz, ACLK=1MHz, MCLK=18MHz, SMCLK=4.5MHz
MSP430F5529 系统时钟初始化函数
以下是 MSP430F5529 的系统时钟初始化函数,该函数设置 FLLREFCLK 为 1MHz,ACLK 为 1MHz,MCLK 为 18MHz,SMCLK 为 4.5MHz:
#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 的系统时钟初始化。
原文地址: https://www.cveoy.top/t/topic/gQWq 著作权归作者所有。请勿转载和采集!