工具与软件:
您好!
我在两种模式下使用 MSPM0G3107 STANDBY1和 RUN0/SLEEP0。 我需要将电流消耗保持在微安范围内、以满足我的要求。 在进入待机模式之前、我会关闭 UART。 通过特定的 GPIO 中断实现从待机模式的唤醒。 现在、在退出待机模式后、我为 UART 加电、并通过中断来接收一定数量的数据。 该操作在调试模式下能够很好地工作。 但一旦我返回正常运行、控制器就会退出 STANDBY0模式(通过运行时电流消耗进行检查)、但尽管 UART 模块已重新开启、但仍无法在 Run0模式下接收任何 UART 数据...
main()函数代码如下:
int main(void)
{
SYSCFG_DL_init();
NVIC_EnableIRQ(BOLT_INT_IRQN);
while (1)
{
modeTogglePolicy = false;
modeTogglePolicy2 = false;
DL_UART_disablePower(UART_0_INST);
NVIC_DisableIRQ(TIMER_0_INST_INT_IRQN);
uartStatus = DL_UART_isEnabled(UART_0_INST);
DL_SYSCTL_setPowerPolicySTANDBY1();
while (modeTogglePolicy == false)
{
__WFE();
}
DL_SYSCTL_setPowerPolicyRUN0SLEEP0();
delay_cycles(640000);
__WFE();
// Add a small delay
DL_UART_enablePower(UART_0_INST);
delay_cycles(640000);
DL_UART_Main_enable(UART_0_INST);
delay_cycles(640000);
DL_UART_Main_enableInterrupt(UART_0_INST, DL_UART_MAIN_INTERRUPT_RX);
NVIC_EnableIRQ(UART_0_INST_INT_IRQN);
delay_cycles(640000);
NVIC_EnableIRQ(TIMER_0_INST_INT_IRQN);
uartStatus = DL_UART_isEnabled(UART_0_INST);
while (modeTogglePolicy2 == false)
{
__WFE();
}
}
}
有人可以就此问题指导我吗?
谢谢。此致、