void SysCtrlWakeupSetting(void)
{ 
  /* GPIO A, C and SM Timer can wake up the processor */
  GPIOIntWakeupEnable(GPIO_IWE_PORT_A);
  GPIOIntWakeupEnable(GPIO_IWE_PORT_B);
  GPIOIntWakeupEnable(GPIO_IWE_PORT_C);
  GPIOIntWakeupEnable(GPIO_IWE_PORT_D);
  GPIOIntWakeupDisable(GPIO_IWE_USB);
  GPIOIntWakeupEnable(GPIO_IWE_SM_TIMER);
  
  /* Setup GPIO A, C as a falling edge  */
  GPIOPowIntTypeSet(BSP_KEY_DIR_BASE, BSP_KEY_LEFT | BSP_KEY_RIGHT | 
                    BSP_KEY_UP | BSP_KEY_DOWN, GPIO_POW_FALLING_EDGE);
  GPIOPowIntTypeSet(BSP_KEY_SEL_BASE, BSP_KEY_SELECT, GPIO_POW_FALLING_EDGE);
  //设置PB0、PC2、PC3可以唤醒
  GPIOPowIntTypeSet(GPIO_B_BASE,GPIO_PIN_0,GPIO_POW_FALLING_EDGE);
  GPIOPowIntTypeSet(GPIO_C_BASE,GPIO_PIN_2,GPIO_POW_FALLING_EDGE);
  GPIOPowIntTypeSet(GPIO_C_BASE,GPIO_PIN_3,GPIO_POW_FALLING_EDGE);
}
/**************************************************************************************************
 * @fn          SysCtrlPowIntEnableSetting
 *
 * @brief       Enable power-up interrupt for the specified port, using 
 *              GPIO_PI_IEN register
 *
 * input parameters
 *
 * @param       None.
 *
 * output parameters
 *
 * None.
 *
 * @return      None.
 **************************************************************************************************
 */
void SysCtrlPowIntEnableSetting(void)
{
  GPIOPowIntEnable(BSP_KEY_DIR_BASE, BSP_KEY_LEFT | BSP_KEY_RIGHT | BSP_KEY_UP |
                   BSP_KEY_DOWN);
  GPIOPowIntEnable(BSP_KEY_SEL_BASE, BSP_KEY_SELECT); 
  
    //设置PB0、PC2、PC3可以唤醒
    GPIOPowIntEnable(GPIO_B_BASE,GPIO_PIN_0);
    GPIOPowIntEnable(GPIO_C_BASE,GPIO_PIN_2);
    GPIOPowIntEnable(GPIO_C_BASE,GPIO_PIN_3);
}
/**************************************************************************************************
 * @fn          SysCtrlPowIntDisableSetting
 *
 * @brief       Disable power-up interrupt for the specified port, using 
 *              GPIO_PI_IEN register
 *
 * input parameters
 *
 * @param       None.
 *
 * output parameters
 *
 * None.
 *
 * @return      None.
 **************************************************************************************************
 */
void SysCtrlPowIntDisableSetting(void)
{
  GPIOPowIntDisable(BSP_KEY_DIR_BASE, BSP_KEY_LEFT | BSP_KEY_RIGHT | BSP_KEY_UP |
                   BSP_KEY_DOWN);
  GPIOPowIntDisable(BSP_KEY_SEL_BASE, BSP_KEY_SELECT); 
  
    //禁止PB0、PC2、PC3喚醒中断
    GPIOPowIntDisable(GPIO_B_BASE,GPIO_PIN_0);
    GPIOPowIntDisable(GPIO_C_BASE,GPIO_PIN_2);
    GPIOPowIntDisable(GPIO_C_BASE,GPIO_PIN_3);  
}
/**************************************************************************************************
 * @fn          SysCtrlPowIntDisableSetting
 *
 * @brief       Clear the Power Interrupt registers
 *
 * input parameters
 *
 * @param       None.
 *
 * output parameters
 *
 * None.
 *
 * @return      None.
 **************************************************************************************************
 */
void SysCtrlPowIntClear(void)
{
  GPIOPowIntClear(BSP_KEY_DIR_BASE, BSP_KEY_LEFT | BSP_KEY_RIGHT | BSP_KEY_UP |
                  BSP_KEY_DOWN);
  GPIOPowIntClear(BSP_KEY_SEL_BASE,BSP_KEY_SELECT);
  
    //清除PB0、PC2、PC3唤醒中断
    GPIOPowIntClear(GPIO_B_BASE,GPIO_PIN_0);
    GPIOPowIntClear(GPIO_C_BASE,GPIO_PIN_2);
    GPIOPowIntClear(GPIO_C_BASE,GPIO_PIN_3);    
}
/**************************************************************************************************
 * @fn          SysCtrlClockStartupSetting
 *
 * @brief       Setup clock startup sequence
 *
 * input parameters
 *
 * @param       None.
 *
 * output parameters
 *
 * None.
 *
 * @return      None.
 **************************************************************************************************
 */
void SysCtrlClockStartSetting(void)
{
  /* Setup the clock startup sequence to 32 MHz external 
   * osc and 32k sourced from external oscillator
   */
  IOCPadConfigSet(GPIO_D_BASE, 0xC0, IOC_OVERRIDE_ANA);
  SysCtrlClockSet(OSC_32KHZ, false, SYS_CTRL_SYSDIV_32MHZ);
}
可以进入低功耗模式,却不能通过外部中断唤醒
 
				 
		 
					