This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430F5529: 为何MSP430F5529内部REFO(32.768KHz)倍频最高只能到5MHz

Part Number: MSP430F5529

我用MSP430F5529的launchpad测试,MSP430F5529内部REFO(32.768KHz)倍频最高只能到5MHz。请问是代码那块实现有问题吗? 谢谢!

代码如下。

UCSCTL2 = FLLD__1 | 155;  时,启动后时钟可清除错误标识成功,运行正常,测试MCLK为5MHz多一点;

UCSCTL2 = FLLD__1 | 156;   时,启动后一直停留在while循环出不来,原因是OFIFG标识一直不能清除成功;

void clock_init(void)
{
  UCSCTL0 = 0;                                            // 配置为0即可
  UCSCTL1 = DCORSEL_2;                        // DCO频率范围选择
  UCSCTL2 = FLLD__1 | 156;                      // FLLD、FLLN 值设置

  UCSCTL3 = SELREF__REFOCLK | FLLREFDIV__1;        // FLL时钟选择、FLL分频

  while (SFRIFG1 & OFIFG) // Loop until XT1,XT2 & DCO stabilizes
  {
    UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);    // 清除三类时钟标志位
    // 这里需要清除三种标志位,因为任何一种标志位都会将OFIFG置位
    SFRIFG1 &= ~OFIFG; // 清除时钟错误标志位
  }

  UCSCTL4 = SELA__DCOCLK | SELS__DCOCLK | SELM__DCOCLK; // ACLK、SMCLK、MCLK 时钟源选择--DCOCLK
}

**Attention** This is a public forum