按照这种来就行
//初始化位输入上拉
GPIOB_ModeCfg(GPIO_Pin_8, GPIO_ModeIN_PU);
//开启下降沿中断
GPIOB_ITModeCfg(GPIO_Pin_8,GPIO_ITMode_FallEdge);
//开启GPIO的睡眠唤醒,如果需要的话
PWR_PeriphWakeUpCfg( ENABLE, RB_SLP_GPIO_WAKE );
//开启GPIO中断
NVIC_EnableIRQ( GPIO_IRQn );
//中断服务程序
void GPIO_IRQHandler(void) {
PRINT("gpio interrupt\r\n");
GPIOB_ClearITFlagBit(GPIO_Pin_8);
}
但是要注意:
1,芯片的sleep 代码,在休眠前主频是6.4M,所以GPIO中断唤醒后,频率是比较低的
|