void Rtc_Init(uint32_t SysClk)
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_HIBERNATE); //使能RTC模块
HibernateEnableExpClk(SysClk);
HibernateClockConfig(HIBERNATE_OSC_HIGHDRIVE);// 时钟选择32.768KHz
HibernateRTCTrimSet(0x7FFF); HibernateGPIORetentionEnable();
HibernateWakeSet(HIBERNATE_WAKE_PIN);
SysCtlDelay(6400); //necessary, without this rtc won't work. don't really know why
HibernateRTCEnable();
},
上面初始化是抄的。有个问题就是HibernateClockConfig函数当配置HIBERNATE_OSC_DISABLE,也就是使用外部32.768Khz时钟时,导致系统直接停掉,求教怎么解决?
xyz549040622:
没仔细对比你的代码,可以直接copy这个RTC的例程,TM4C129x下RTC的例程C:\ti\TivaWare_C_Series-2.1.4.178\examples\boards\dk-tm4c129x\tamper
user4310042:
回复 xyz549040622:
我参考了下,那个程序里面HibernateClockConfig(HIBERNATE_OSC_HIGHDRIVE);这句话没用到。我主要想知道的是参数HIBERNATE_OSC_DISABLE配置为什么会导致系统停止,上面的配置也是可以实现RTC的