cc3200 gpio sleep 睡眠唤醒求救!
static void MICButtonHandler()
{
unsigned long ulPinState = GPIOIntStatus(GPIOA1_BASE,1);
if(ulPinState & GPIO_PIN_5)
{
//Clear and Disable GPIO Interrupt
//MAP_GPIOIntDisable(GPIOA1_BASE,GPIO_PIN_5);
MAP_GPIOIntClear(GPIOA1_BASE,GPIO_PIN_5);
//MAP_IntDisable(INT_GPIOA1);
}
}
#if 1
MAP_PRCMPeripheralClkEnable(PRCM_GPIOA1, PRCM_RUN_MODE_CLK);
MAP_PinTypeGPIO(PIN_04, PIN_MODE_0, false);//配置为GPIO模式
MAP_GPIODirModeSet(GPIOA1_BASE, 0x20, GPIO_DIR_MODE_IN);//配置为输入功能
MAP_GPIOIntTypeSet(GPIOA1_BASE,GPIO_PIN_5,GPIO_FALLING_EDGE);//边沿触发
MAP_GPIOIntRegister(GPIOA1_BASE,(P_OSI_INTR_ENTRY)MICButtonHandler);
MAP_GPIOIntClear(GPIOA1_BASE,GPIO_PIN_5);
MAP_GPIOIntEnable(GPIOA1_BASE,GPIO_INT_PIN_5);
#if 0
MAP_PRCMPeripheralClkEnable(PRCM_GPIOA1, PRCM_DSLP_MODE_CLK);
DBG_PRINT("DEEPSLEEP: Entering Deep Sleep\n\r");
MAP_UtilsDelay(80000);
MAP_PRCMSleepEnter();//PRCMSleepEnter();//每天17:00进入深度睡眠。
DBG_PRINT("DEEPSLEEP: Exiting Deep Sleep\n\r");
MAP_PRCMPeripheralClkDisable(PRCM_GPIOA1, PRCM_DSLP_MODE_CLK);
#endif
#endif
问题:如上代码配置,MICButtonHandler中断函数是可以接收到SW3按键触发。且没有任何问题。
如果我把红的部分的#if 0 ,修改为#if 1,使用睡眠唤醒功能,即按键触发退出睡眠模式。程序永远运行在睡眠模式下,跑不到DBG_PRINT("DEEPSLEEP: Exiting Deep Sleep\n\r");
故求教工程师们,为什么?
发了好多帖子,都没人回复,希望这次能得到回答。
已经找到问题了,不过还是要谢谢工程师么!
最后是哪里出了问题了,可以给我点经验吗?我的qq:972903389
是 PRCM_DSLP_MODE_CLK 与 PRCMSleepEnter() 不匹配造成的吗?
我遇到了同样的问题, S3按键无法唤醒,不知您是如何解决的?不吝赐教。
MAP_PRCMSleepEnter();//PRCMSleepEnter();//每天17:00进入深度睡眠。
需要改成 PRCMDeepSleepEnter();就行了
你做cc3200多久了!可以一起讨论,