您好!
当我运行示例代码 separate 时、它可以正常工作、但当我在几秒钟(30-40秒)后将同一代码放入项目时、 LPM4.5会自动输出。
我正在发送下面的代码。 请建议我 做什么
空 LPM4_5 (空)
{
UART_putstring ("\r\n>>>> 在 LPM 4.5模式下<<<<<< \r\n ");
//配置 GPIO
P1OUT &=~BIT6;
P1DIR = BIT6;
//确定我们是从 LPMx.5还是常规复位中退出。
if (SYSRSTIV = SYSRSTIV_LPM5WU){
PJSEL0 = BIT4 | BIT5;//对于 XT1
//时钟系统设置
CSCTL0_H = CSKEY >> 8;//解锁 CS 寄存器
CSCTL1 = DCOFSEL_0;//将 DCO 设置为1MHz
CSCTL2 = SELA_LFXTCLK | SELESS__DCOCLK | SELM_DCOCLK;
CSCTL3 = DIVA__1 | DIVM_1 | DIVM__1;//设置所有分频器
CSCTL4 &=~LFXTOFF;
PM5CTL0 &=~LOCKLPM5;
执行{
CSCTL5 &=~LFXTOFFG;//清除 XT1故障标志
SFRIFG1 &=~OFIFG;
} while (SFRIFG1 & OFIFG);//测试振荡器故障标志
}
否则{
//将 P1.6配置为中断
P1OUT &=~BIT6;// P1.6上的下拉电阻器
P1REN |= BIT6;//为 P1.6选择下拉模式
P1DIR = 0xFF ^ BIT6;//将除 P1.1之外的所有方向设置为输出方向
P1IES &=~BIT6;// P1.6低/高边沿
P1IFG = 0;//清除所有 P1中断标志
P1IE |= BIT6;// P1.6中断被启用
//禁用 GPIO 上电默认高阻抗模式以激活
//先前配置的端口设置
PM5CTL0 &=~LOCKLPM5;
PMMCTL0_H = PMMPW_H;//打开 PMM 寄存器进行写入
PMMCTL0_L |= PMMREGOFF;//并设置 PMMREGOFF
PMMCTL0_H = 0;//锁定 PMM 寄存器
//输入 LPM4请注意,此操作不会返回。 LPM4.5
//将通过复位事件退出,从而重新启动
代码的//。
_bis_SR_register (LPM4_BITS);
while (1);// MCU 将在这里等待、直到在 P1.6上接收到中断
}
}