This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
void HibernateEnableExpClk(uint32_t ui32HibClk);
我在阅读函数介绍的时候觉得里面的参数ui32HibClk is the rate of the clock supplied to the Hibernation module.
那么,我是不是应该理解成ui32HibClk是用于休眠模式下的时钟?
问题是,休眠模式不是运行在RTC时钟下么?还要设置别的时钟?
我写程序测试了,HibernateEnableExpClk里面参数写什么都没有变化?
请问,哪里出问题了?
冬眠模块工作是在32.768KHz的。
分享一个冬眠的代码:
int main(void)
{
SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3);
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, 0x08);
SysCtlPeripheralEnable(SYSCTL_PERIPH_HIBERNATE);
HibernateEnableExpClk(SysCtlClockGet());
HibernateGPIORetentionEnable();
SysCtlDelay(64000000);
HibernateWakeSet(HIBERNATE_WAKE_PIN);
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3, 0x00);
HibernateRequest();
while(1)
{
}
}
一般写得时候都这样接去写。
看一下HibernateEnableExpClk的源码,其实没用这个参数。所以随便写的。
这个是兼容以前老的芯片。新的芯片采用查询寄存器的方式了,不是延迟的方式。