以下是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;
}

该函数的实现步骤如下:

  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=1MHzACLK=1MHzMCLK=18MHzSMCLK=45MHz

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

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