int main( ){
GPIOA_ModeCfg(GPIO_Pin_12, GPIO_ModeIN_PD); //配置GPIO中断
GPIOA_ITModeCfg(GPIO_Pin_12, GPIO_ITMode_HighLevel);
PFIC_EnableIRQ( GPIO_A_IRQn );
while(1);
}
__attribute__((interrupt("WCH-Interrupt-fast")))
__attribute__((section(".highcode")))
void GPIOA_IRQHandler(void)
{
if(GPIOA_ReadPortPin(GPIO_Pin_12) != 0){
GPIOA_ClearITFlagBit(GPIO_Pin_12);
printf("Inter\n");
}
}
进入中断后可以读取电平状态,根据电平的状态选择是否执行某个引脚的中断功能。
|