以前写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); }
xyz549040622:
IO的私有中断是指哪个呢?TM4C都是每组IO共用一个中断入口的,没有单独的IO中断的。
Maka Luo:
IO中断入口地址没有单独一个IO中断入口地址,进去中断后可以单独判断。
xyz549040622:
回复 Maka Luo:
问题是进去中断口后,如何判断触发的哪一个中断呢?用的是哪个函数呢?读取IO的电平吗?