这一部分比较熟悉了少说两句
···
//打开PORTE的中断,注册中断函数为GPIO_ISR
GPIO_CallbackInstall(HW_GPIOE, GPIO_ISR);
//将PORTE26配置为下降沿触发
GPIO_ITDMAConfig(HW_GPIOE, 26, kGPIO_IT_FallingEdge, true);
//下面依据表示中断函数是一个带有参数的函数
typedef void (*GPIO_CallBackType)(uint32_t pinxArray);
···
其实在中断函数中,应该关闭中断的,但是在固件库中已将写过了,就不用再写如下:
static void PORT_IRQHandler(uint32_t instance)
{
uint32_t ISFR;
/* safe copy */
ISFR = PORT_InstanceTable[instance]->ISFR;
/* clear IT pending bit */
PORT_InstanceTable[instance]->ISFR = 0xFFFFFFFF;
if(GPIO_CallBackTable[instance])
{
GPIO_CallBackTable[instance](ISFR);//回调函数
}
}
一般直说使用的话,能够理解函数调用就好了