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