void gpio_wake_init() {
//初始化位输入上拉
GPIOB_ModeCfg(GPIO_Pin_4, GPIO_ModeIN_PU);
//开启下降沿中断
GPIOB_ITModeCfg(GPIO_Pin_4,GPIO_ITMode_FallEdge);
//开启GPIO睡眠唤醒
PWR_PeriphWakeUpCfg( ENABLE, RB_SLP_GPIO_WAKE,Edge_LongDelay );
//开启GPIOB中断
PFIC_EnableIRQ(GPIO_B_IRQn);
}
//中断服务程序
__attribute__((interrupt("WCH-Interrupt-fast"))) //硬件压栈
__attribute__((section(".highcode"))) //放到RAM里
void GPIOB_IRQHandler(void) {
PRINT("gpio interrupt\r\n");
GPIOB_ClearITFlagBit(GPIO_Pin_4);
} |