下面的函数初始化了GPIO12 和GPIO13下降沿中断 函数说明说下
/******************************************************************************
* FunctionName : gpio_intr_handler
* Description : gpio interrupt callback funtion
* Parameters : void
* Returns : void
*******************************************************************************/
void gpio_intr_handler(void){
_xt_isr_mask(1<<ETS_GPIO_INUM); //disable interrupt
os_delay_us(20*1000);//delay 20ms
if(!GPIO_INPUT_GET(GPIO_ID_PIN(12))){
printf("\r\n receive button press!");
}
if(!GPIO_INPUT_GET(GPIO_ID_PIN(13))){
printf("\r\n receive button press2!");
}
GPIO_REG_WRITE( GPIO_STATUS_W1TC_ADDRESS, GPIO_Pin_12|GPIO_Pin_13 ); //clear interrupt mask
_xt_isr_unmask(1 << ETS_GPIO_INUM); //Enable the GPIO interrupt
}
/******************************************************************************
* FunctionName : buttonInit
* Description : button intt
* Parameters : void
* Returns : NULL
*******************************************************************************/
void buttonInit(void){
GPIO_ConfigTypeDef gpio_in_cfg; //Define GPIO Init Structure
gpio_in_cfg.GPIO_IntrType = GPIO_PIN_INTR_NEGEDGE; //
gpio_in_cfg.GPIO_Mode = GPIO_Mode_Input; //Input mode
gpio_in_cfg.GPIO_Pullup = GPIO_PullUp_EN;
gpio_in_cfg.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13; // Enable GPIO
gpio_config(&gpio_in_cfg); //Initialization function
GPIO_REG_WRITE(GPIO_STATUS_W1TC_ADDRESS, GPIO_Pin_12|GPIO_Pin_13);//Forbidden ouput register
// Register the interrupt callback function
gpio_intr_handler_register(gpio_intr_handler, NULL);
_xt_isr_unmask(1 << ETS_GPIO_INUM); //Enable the GPIO interrupt
// _xt_isr_mask(1 << ETS_GPIO_INUM); //Disable the GPIO interrupt
}