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.

MSP430如何进入低功耗模式LPMx.5

Other Parts Discussed in Thread: MSP430FR5739

使用的单片机型号是MSP430FR5739,进入低功耗模式LPM4可以使用TI提供的函数__bis_SR_register(LPM4_bits)设置寄存器,那么进入LPM3.5或者LPM4.5应该如何写程序,另外进入LPMx.5之后仿真器将无法使用,如何验证结果,求大神赐教~

  • 可以参考文档 http://www.ti.com.cn/cn/lit/ug/zhcu026ac/zhcu026ac.pdf 第16页

  • 不好意思,我用的调试软件是CCS,不知道有没有对应的资料

    ; Enter LPMx.5 Example
    MOV.B #PMMPW_H, &PMMCTL0_H ; Open PMM registers for write
    BIS.B #PMMREGOFF, &PMMCTL0_L ;
    BIS #GIE+CPUOFF+OSCOFF+SCG1+SCG0,SR ; Enter LPMx.5 when PMMREGOFF is set.

    我使用芯片手册上提供的以上方法进入低功耗模式,但是上电后发现它无限复位,不知道是什么情况...

  • 你好,可能我现在更关注的是进入LPMx.5的方式是否正确,以下是我的代码


    #include "Msp430fr5739.h"

    void main(void)
    {
          WDTCTL = WDTPW + WDTHOLD;
          clock_Init();
          gpio_Init_LPM();
          __bis_SR_register(GIE);


          __delay_cycles(5000000);
          PJOUT |= BIT1;       // output is high(PJ.1) for test
          __delay_cycles(5000000);


          PMMCTL0_H |= PMMPW_H;
          PMMCTL0_L |= PMMREGOFF;
          __bis_SR_register(LPM3_bits);
          while(1);
    }

    #pragma vector = PORT1_VECTOR
    __interrupt void Port_1(void)
    {
    switch(__even_in_range(P1IV,P1IV_P1IFG5))
    {
          case P1IV_P1IFG5:
                    PJOUT &= ~BIT1;               // output is low(PJ.1) for test
                    break;

          default:
                    break;
    }
          P1IFG = 0; // P1 IFG cleared
    }

    其中gpio_Init_LPM()将所有的管脚设置成IO模式,输出低电平,P1.5配置成下降沿中断用来唤醒430

          PMMCTL0_H |= PMMPW_H;
          PMMCTL0_L |= PMMREGOFF;

    用来进入LPMx.5模式,现在的现象是脱离仿真器上电以后灯在闪烁,也就是程序一直在无限重新加载,百思不得其解

    我理解的是应该是P1.5触发中断唤醒之后才会重新加载程序,不知道哪里理解的有问题,还请赐教

  • LPMX.5 把片内降压的LDO关掉了,RAM里面的数据都会丢失,为什么不进LPM3?