我正在尝试初始化休眠模块、以便使用 TM4C1290NCPDT 上的 RTC 功能、并遇到很多问题。
我们的设计采用了外部32.768kHz 振荡器。 然而、在调试我的问题时、我发现我们的电路板制造存在一些质量问题、在我最初的努力中、我真正遇到的是3V VBAT 短接至 XOSC0。 我已经移除了振荡器和短路、使得 XOSC0和 XOSC1现在悬空(无连接)。
相关代码如下所示。 在当前状态下、处理器在 HibernateEnableExpClk (sys_clock)调用中陷入无限循环。 我已经单步执行汇编、可以看到它尝试在 HIBCTL 寄存器中标记 CLK32EN 并等待写入完成标志(WRC)。 然而、所有写入最后完成的操作是复位 WRC 位、这一位永远不会再次变为高电平、从而导致代码一直等待 WRC 位、从而导致无限循环。
我在这里出了什么问题?
SYS_CLOCK = SysCtlClockFreqSet (SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHz | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480、25000000); SysCtlPeripheralEnable (SYSCTL_Periph_HIBERNATE); while (!SysCtlPeripheralReady (SYSC_HIBERNATHIBERNATE_WAITH )(SYSC_HIBERNATHIBERNATHIBERM)(SYSC_HIBERNATHIBERNATHIBERNATHINCH)(SYNTRHOLATE)(SY_HIBERNATHIBERNATHIBERNATHIBERNATHIBERNATHIBERNATHIBERNATE_WAY)(SY_HIBERNATHIBERNATHINCH