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.

求F5438系统时钟初始化函数

你好,

想请教一下,msp430f5430,使用XT2,频率16MHz时,
系统时钟部分初始化是怎样的,能发一个系统时钟初始化函数参考一下吗?谢谢!

 

  • #include "msp430x54x.h"

    void main(void)

    {

     WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer

     P5SEL |= 0x0C;                            // Port select XT2

     UCSCTL6 &= ~XT2OFF;                       // Enable XT2

     UCSCTL3 |= SELREF_2;                      // FLLref = REFO

                                               // Since LFXT1 is not used,

                                               // sourcing FLL with LFXT1 can cause

                                               // XT1OFFG flag to set

     UCSCTL4 |= SELA_2;                        // ACLK=REFO,SMCLK=DCO,MCLK=DCO

     // Loop until XT1,XT2 & DCO stabilizes

     do

     {

       UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);

                                               // Clear XT2,XT1,DCO fault flags

       SFRIFG1 &= ~OFIFG;                      // Clear fault flags

     }while (SFRIFG1&OFIFG);                   // Test oscillator fault flag

     UCSCTL6 &= ~XT2DRIVE0;                    // Decrease XT2 Drive according to

                                               // expected frequency

     UCSCTL4 |= SELS_5 + SELM_5;               // SMCLK=MCLK=XT2

     while(1);                                 // Loop in place

    }