我写了个系统时钟初始化的程序,但是测试的时候发现XT2CLK不是方波

2019-03-24 13:28发布

三角波 三角波
示波器说检测到了正弦波……
我的晶振是24MHz  单片机是MSP430F5438A
程序如下:
  1. void SystemClockInitial()
  2. {
  3.   P5SEL |= 0x0c;    //选择P5.2,P5.3为XT1引脚
  4.   P7SEL |= 0X03;    //选择P7.0,P7.1为XT2引脚
  5.   P11DIR |= 0x07;   //设置P11为输出
  6.   P11SEL |= 0x07;   //选择P11口的第二功能 0:ACLK  1:MCLK   2:SMCLK
  7.   
  8.   __bis_SR_register(SCG0);   //关闭FLL
  9.   
  10.   UCSCTL0 = 0x0000;         //DC0 = 0   MOD = 0
  11.   UCSCTL1 = DCORSEL_0;      //RSEL = 0   0.07~0.20MHz   70K~200KHz
  12.   UCSCTL2 = 0x1031;                           //D = 1  N = 49
  13.   UCSCTL3 = SELREF__REFOCLK + FLLREFDIV__16;              //32768Hz    32768 / 16 * 1 * 50 = 102.4KHz
  14.   UCSCTL4 = SELA__DCOCLK + SELM__XT1CLK + SELS__XT2CLK;   //ACLK = XT1CLK = 32768   MCLK = SMCLK = XT2CLK = 24MHz
  15.   UCSCTL5 = DIVPA__16 + DIVA__1 + DIVM__2 + DIVS__1;
  16.   UCSCTL6 = XT2DRIVE_2 + XT1DRIVE_1 + XCAP_3;
  17.   UCSCTL6 &= ~(XT1OFF + XT2OFF);
  18.   UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);
  19.   while(SFRIFG1&OFIFG)
  20.   {
  21.      UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);
  22.      SFRIFG1 &= ~OFIFG;
  23.   }
  24.   __bic_SR_register(SCG0);
  25. }
复制代码
[ 本帖最后由 yang坤兴 于 2012-9-9 16:53 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
ddllxxrr
2019-03-25 01:06
 精彩回答 2  元偷偷看……0人看过

一周热门 更多>

相关问题

    相关文章