您好!
我有一位客户尝试使用自己的驱动程序库实现从关断模式唤醒示例。
以下是其电源策略关断功能:
/*!
* @brief Call this to configure the MCU into shutdown mode
* @param None
* @return None
*/
void SetPowerPolicyShutdown( void )
{
SYSCTL->SOCLOCK.PMODECFG = SYSCTL_PMODECFG_DSLEEP_SHUTDOWN;
SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;
}
这是用于设置关断条件的代码:
button.SetWake( IO_Definitions::BUTTON_WAKE_CONFIG );
DL_SYSCTL_setPowerPolicySHUTDOWN();
delayCycles(1000000);
//sleepMode.SetPowerPolicyShutdown( );
while ( 1 )
{
// waiting on the interrupt
__WFI();
}
所以我尝试直接复制关断电源策略的 driverlib 实现。 现在、这两种行为似乎都只是导致 MCU 进入 WFI 环路。
我已验证唤醒引脚 PA18的 IO 配置与我们关断示例的 IO 配置是否匹配。
除了 SysTick 之外、该器件目前未启用其他外设。 我确实尝试了禁用 SysTick、但这也没有影响任何东西。
我注意到、代码版本稍有不同、这会导致 MCU 实际进入不可连接的状态、无法将代码下载到器件中、只会在复位后才输出。 这似乎意味着、有时我可以进入关断状态、但它非常不一致、而且从未能够将器件从关断状态中唤醒。
有关哪些因素可能会阻止器件从 SHUTDOWN 模式唤醒以及哪些因素可能会阻止我完全进入 SHUTDOWN 模式、有什么建议?
客户正在使用 IAR 编译器9.40。
穆南