主题中讨论的其他器件:TM4C123
大家好、我的休眠模块有问题。 我使用的是定制板、编译器是 IAR。 我想启用休眠模块并使用外部 WAKE 引脚唤醒。 当我调试时、我看到代码停留在 while (!(HWREG (HIB_CTL)& HIB_CTL_WRC) in HibernateWriteComplete (void)函数中。 我认为 这意味着它从不会使写入操作复杂化。 代码如下。 提前感谢。
编辑:我将 CR1220 3.3V 电池连接到 MCU 的 Vbat 引脚。 此外、32kHz 晶体按在 Launch Pad 中连接的方式连接到 MCU
void AppHibernateEnter (void) { SysCtlPeripheralEnable (SYSCTL_Periph_HIBERNATE); // HibernateEnableExpClk (SysCtlClockGet ()); while (!SysCtlPeripheralReady (SYSCTL_Periph_HIBERNATE) )){ } //HibernateGPIORetentionEnable(); HibernateClockConfig (HIBERNATE_OSC_LOWDRIVE); SysCtlDelay (SysCtlClockGet ()/(1000 * 3)); HibernateWakeSet (HIBERNATE_WAKE_PIN); HibernateIntEnable (HIBERNATE_INT_PIN_WAKE); HibernateIntClear (HIBERNATE_INT_PIN_WAKE | HIBERNATE_INT_LOW_BAT | HIBERNATE_INT_RTC_MATH_0); HibernateRequest(); SysCtlDelay (100); UARTprintf ("控制器未进入休眠模式。\n"); // //等待此处。 // while (1) { UARTprintf ("休眠中、同时\n"); SysCtlDelay (10000000); } }void HibernateIntHandler (void){ uint32_t ui32Status; // 获取中断状态并清除任何挂起的中断。 // ui32Status = HibernateIntStatus (1); HibernateIntClear (ui32Status); UARTprintf ("休眠中断中\n"); }