我配置gpio39为上升沿触发中断,然后我给开发板gpio39接3k下拉接地,然后串联一个按键,然后接到板子3.3v,按下按键无法触发中断。
//xint2 gpio5 下降沿 //xint5 gpio39 上升沿 void InitExternalInterrupt(void) { // GPIO4 is XINT1, GPIO5 is XINT2 EALLOW; //配置PS和HS GpioCtrlRegs.GPAMUX1.bit.GPIO4 = 0; //引脚配置为GPIO GpioCtrlRegs.GPADIR.bit.GPIO4 = 0; //方向为输入 GpioCtrlRegs.GPAQSEL1.bit.GPIO4 = 0; //Xint1 Synch to SYSCLKOUT only //GpioCtrlRegs.GPAPUD.bit.GPIO4 = 0; //使能内部上拉 GpioCtrlRegs.GPAMUX1.bit.GPIO5 = 0; //引脚配置为GPIO GpioCtrlRegs.GPADIR.bit.GPIO5 = 0; //方向为输入 GpioCtrlRegs.GPAQSEL1.bit.GPIO5 = 0; //Xint1 Synch to SYSCLKOUT only GpioCtrlRegs.GPAPUD.bit.GPIO5 = 0; //使能内部上拉 //GPIO0-GPIO7引脚采样周期 = 510*Tsysclkout //GpioCtrlRegs.GPACTRL.bit.QUALPRD0 = 0xFF; //Each sampling window is 510*SYSCLKOUT //打印头超温中断 GpioCtrlRegs.GPBMUX1.bit.GPIO37 = 0; //引脚配置为GPIO GpioCtrlRegs.GPBDIR.bit.GPIO37 = 0; //方向为输入 GpioCtrlRegs.GPBQSEL1.bit.GPIO37 = 0; //Xint1 Synch to SYSCLKOUT only //GpioCtrlRegs.GPBPUD.bit.GPIO37 = 0; //使能内部上拉 //左端黑标检测传感器 GpioCtrlRegs.GPBMUX1.bit.GPIO39 = 0; //引脚配置为GPIO GpioCtrlRegs.GPBDIR.bit.GPIO39 = 0; //方向为输入 GpioCtrlRegs.GPBQSEL1.bit.GPIO39 = 0; //Xint1 Synch to SYSCLKOUT only GpioCtrlRegs.GPBPUD.bit.GPIO39 = 1; //使能内部上拉 //GPIO32-GPIO9引脚采样周期 = 510*Tsysclkout GpioCtrlRegs.GPBCTRL.bit.QUALPRD0 = 0xFF; //Each sampling window is 510*SYSCLKOUT GPIO_SetupXINT2Gpio(5); GPIO_SetupXINT5Gpio(39); EDIS; XintRegs.XINT2CR.bit.POLARITY = 0; XintRegs.XINT5CR.bit.POLARITY = 1; //使能中断 XintRegs.XINT2CR.bit.ENABLE = 1; // Enable XINT2 XintRegs.XINT5CR.bit.ENABLE = 1; // Enable Xint5 } //下降沿 interrupt void Xint2_Isr(void) { DELAY_US(10); //延时10us if(GpioDataRegs.GPADAT.bit.GPIO5==0) { LED2_ON; scia_msg("Xint2_Isr320"); iUartTimeCount=5; } PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; } //上升沿 interrupt void Xint5_Isr(void) { DELAY_US(10); //延时10us if(GpioDataRegs.GPBDAT.bit.GPIO39==1) { LED1_ON; scia_msg("Xint5_Isrtms320"); iUartTimeCount=5; } PieCtrlRegs.PIEACK.all = PIEACK_GROUP12; }