以下是 MSP430F5529 的初始化系统时钟函数代码示例,设置 ACLK 为 1MHz,SMCLK 为 4.5MHz,MCLK 为 18MHz。

#include <msp430.h>

void initClocks(void)
{
    // 设置 DCO 频率为 18MHz
    CSCTL0_H = CSKEY >> 8; // 解锁 CS 寄存器
    CSCTL1 = DCOFSEL_6; // DCO 频率为 24MHz
    CSCTL2 = SELA__LFXTCLK | SELS__DCOCLK | SELM__DCOCLK; // ACLK 选择 LFXTCLK,SMCLK 和 MCLK 选择 DCOCLK
    CSCTL3 = DIVA__1 | DIVS__4 | DIVM__1; // ACLK 分频 1,SMCLK 分频 4,MCLK 分频 1
    CSCTL4 &= ~LFXTOFF; // 开启 LFXT 振荡器
    do
    {
        CSCTL5 &= ~LFXTOFFG; // 清除 LFXT 振荡器故障标志
        SFRIFG1 &= ~OFIFG; // 清除振荡器故障标志
    } while (SFRIFG1 & OFIFG); // 等待振荡器稳定
}

在这个函数中,我们使用了 CSCTL0_H 寄存器解锁了 CS 寄存器,然后设置了 DCO 频率为 18MHz。接着,我们设置了 ACLK 为 1MHz,SMCLK 为 4.5MHz,MCLK 为 18MHz。最后,我们开启了 LFXT 振荡器,并等待它稳定。

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

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

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