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;
}

该函数的实现步骤如下:

  1. 设置 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。

  2. 设置 ACLK 频率为 1MHz:通过 UCSCTL4 设置 SELA 为 REFOCLK,从而设置 ACLK 频率为 1MHz。

  3. 设置 SMCLK 频率为 4.5MHz:通过 UCSCTL4 设置 SELS 为 DCOCLKDIV,UCSCTL5 设置 DIVS 为 2,从而设置 SMCLK 频率为 4.5MHz。

  4. 设置 FLLREFCLK 频率为 1MHz:通过 UCSCTL3 设置 SELREF 为 REFOCLK,从而设置 FLLREFCLK 频率为 1MHz。

最后,在程序的 main 函数中调用该函数即可完成 MSP430F5529 的系统时钟初始化。

MSP430F5529 系统时钟初始化函数 - FLLREFCLK=1MHz, ACLK=1MHz, MCLK=18MHz, SMCLK=4.5MHz

原文地址: https://www.cveoy.top/t/topic/gQWq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录