TMS320F28377S: 我配置gpio39为上升沿触发中断,然后我给开发板gpio39接3k下拉接地,然后串联一个按键,然后接到板子3.3v,按下按键无法触发中断。

Part Number: TMS320F28377S

我配置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;
}