以前写io中断都是使用的整个IO口的中断,从来没使用过IO的私有中断,按照以前的办法配置了一下,发现会一直进入fault B中断
这是配置的函数
int main()
{
coreFre = SysCtlClockFreqSet((SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_CFG_VCO_480|SYSCTL_XTAL_25MHZ),120000000);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOP);
GPIOPinTypeGPIOInput(GPIO_PORTP_BASE,GPIO_PIN_0);
//GPIOPinTypeGPIOOutput(GPIO_PORTP_BASE,GPIO_PIN_5);
GPIOPadConfigSet(GPIO_PORTP_BASE,GPIO_PIN_0,GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);
IntPriorityGroupingSet(2);
IntPrioritySet(INT_GPIOP0,0);
GPIOIntTypeSet(GPIO_PORTP_BASE,GPIO_PIN_0,GPIO_LOW_LEVEL|GPIO_DISCRETE_INT);
IntMasterEnable();
IntDisable(INT_GPIOP1|
INT_GPIOP2|
INT_GPIOP3|
INT_GPIOP4|
INT_GPIOP5|
INT_GPIOP6|
INT_GPIOP7);
IntEnable(INT_GPIOP0);
GPIOIntEnable(GPIO_PORTP_BASE,GPIO_INT_PIN_0);
while(1)
{
}
}
void PortP0IntHandler()
{
GPIOIntClear(GPIO_PORTP_BASE,GPIO_INT_PIN_0);
GPIOPinWrite(GPIO_PORTP_BASE,GPIO_PIN_5,~GPIOPinRead(GPIO_PORTP_BASE,GPIO_PIN_5));
SysCtlDelay(30000000);
}