按照这种来就行
- //初始化位输入上拉
- 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中断唤醒后,频率是比较低的
|