工具与软件:
您好!
我在两种模式下使用 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(); } } }
有人可以就此问题指导我吗?
谢谢。此致、