TI中文支持网
TI专业的中文技术问题搜集分享网站

请教一个关于休眠模式相关函数HibernateIsActive()的问题

int main(void)
{ SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);
if(HibernateIsActive() == false)
{
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);//1000
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1, GPIO_PIN_1); //使能低功耗模式
SysCtlPeripheralEnable(SYSCTL_PERIPH_HIBERNATE);
//Enables the Hibernation module for operation
HibernateEnableExpClk(SysCtlClockGet());
//Enables GPIO retention(保留) after wake from hibernation.
HibernateGPIORetentionEnable();
SysCtlDelay(64000000);
//低功耗模式下唤醒引脚配置
//HibernateWakeSet(HIBERNATE_WAKE_PIN);
HibernateRTCSet(0);
HibernateRTCEnable();
HibernateRTCMatchSet(0,5);//RTC唤醒时间5s
HibernateWakeSet(HIBERNATE_WAKE_PIN | HIBERNATE_WAKE_RTC);
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3, 0x00);

HibernateRequest();
}

while(1)
{
}
}

发现即使是初次上电,HibernateIsActive()函数返回值仍然是true,想实现休眠一次,唤醒后不再休眠,但是如上代码烧录进TM4后无法进入休眠

Susan Yang:

您是在连接仿真器/电脑上的CCS下测试的?此时无法真正进入休眠的

您现在使用的哪款芯片/开发板?或者私信给一下您的工程,我明天来测试一下您的程序,谢谢

user6380423:

回复 Susan Yang:

我使用的是TM4C123GH6PM Launchpad,是用USB供电测试的,这个函数始终返回true,不过我发现SW2和WAKE管脚相连,我把if(HibernateIsActive())改为了if(GPIOPinRead(GPIO_PORTF_BASE,GIPO_PIN_0) == 0x00)之后用按下SW2来唤醒,可以实现只休眠一次了

Susan Yang:

回复 user6380423:

您使用的应该是EK-TM4C123GXL?

www.ti.com/…/EK-TM4C123GXL

在EK-TM4C123上,只有VDD3ON是可用的休眠模式。您可以看一下

www.ti.com/…/spmu296.pdf

2.2.2 Hibernate

赞(0)
未经允许不得转载:TI中文支持网 » 请教一个关于休眠模式相关函数HibernateIsActive()的问题
分享到: 更多 (0)