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.

msp430f5438a可以只用XT2高频时钟吗?

Other Parts Discussed in Thread: MSP430F5438A

msp430f5438a可以只用高频时钟吗?

需要如何设置?

我设置了始终没能成功启动晶振

SetVcoreUp(PMMCORE_2);

P5SEL |= BIT2+BIT3;

UCSCTL6  &= ~XT2OFF;

do{

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

SFRIFG1 &= ~OFIFG;

}while(SFRIFG1&OFIFG);

程序是我在官方例程的基础上改的。仿真中发现,程序一直在while循环中,不能跳出来.

程序到底是什么地方不对,请大神指出来。

  • 可以只用高频时钟的,翻了翻例程没找到这类例子。

    详细的使用方法看看手册吧:http://www.ti.com.cn/cn/lit/ug/slau208p/slau208p.pdf  5.2部分

  • 有没有人知道啊,

  • 我看了手册,也看了官方的例程,

    在基于官方例程上做了些改动,但是不行,启动不了。

  • 启动不了的原因有很多,能否上传下你的电路图和代码?

  • 如果你只使用XT2,那扫描XT1和DCO干什么呢?

    xueyang zhang 说:

    msp430f5438a可以只用高频时钟吗?

    需要如何设置?

    我设置了始终没能成功启动晶振

    SetVcoreUp(PMMCORE_2);

    P5SEL |= BIT2+BIT3;

    UCSCTL6  &= ~XT2OFF;

    do{

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

    SFRIFG1 &= ~OFIFG;

    }while(SFRIFG1&OFIFG);

    程序是我在官方例程的基础上改的。仿真中发现,程序一直在while循环中,不能跳出来.

    程序到底是什么地方不对,请大神指出来。

  • 不扫描xh1和dco也是一样的,都不能启动,一直有SFRIFG1的OFIIG标志位的错误。

  • 楼主你好,能否把完整的错误信息发上来?

    一般程序是先判断标志位,等待晶振起振,然后再清除。先清除标志位,再判断的时候晶振不一定成功起振.

    程序结构这样:

     
      while (SFRIFG1 & OFIFG){  
        UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);         // 清除三类时钟标志位  
                                  // 这里需要清除三种标志位,因为任何一种  
                                  // 标志位都会将OFIFG置位  
        SFRIFG1 &= ~OFIFG;                                  // 清除时钟错误标志位  
      }
  • WDTCTL=WDTPW | WDTHOLD;

    SetVcoreUp(PMMCORE_2);

    P5SEL |= BIT2+BIT3;

    UCSCTL6  &= ~XT2OFF;

    do{

    UCSCTL7 &= ~(XT2OFFG);

    SFRIFG1 &= ~OFIFG;

    }while(SFRIFG1&OFIFG);

    程序我改成这样了,编译没有问题,下载之后仿真看到程序一直在while循环中,

  • 我的XT1用于了其他功能得嘛,这个时钟标志位虽然清除了,但是XT1端口没有时钟也一样会出错。问题是不是这样?