您好,TI:
我是外部中断的初学者,我对如何触发外部中断和从GPIO端口读取数据有点困惑。
下面是我的测试要求:
1:我想使用GPIO10 触发具有下降边缘的外部中断
2:我将两个外部中断设置为GPIO8 (上升边缘)和GPIO9 (上升边缘),一个用于从GPIO0-GPIO7读取数据,另一个用于将数据写入GPIO0-GPIO7
3:下面是我的GPIO设置,请告诉我这里是否有一些错误:
对于GPIO0至GPIO7,其余部分与GPIO0相同
GpioCtrlRegs.GPAPUD.bit.GPIO0 = 0;//启用GPIO0 GpioCtrlRegs.GPAQSEL1.bit.GPIO0 = 3;//异步输入
对于GPIO8和GPIO9:(GPIO 9与GPIO8相同)
gpioCtrlRegs.GPAMUX1.bit.GPIO8= 0; // GPIO GpioCtrlRegs.GPADIR.bit.GPIO8 = 0; //输入 GpioCtrlRegs.GPAQSEL1.bit.GPIO8 = 0; // XINT1 Synch to SYSCLKOUT Only GpioIntRegs.GPIOXINT1SEL.Bit.GPIOSEL = 8;// XINT1 is GPIO8 //配置XINT1 XIntruptRegs.XINT1CR.Bit.Polarity = 0; //下降边缘中断 //启用XINT1 XIntruptRegs.XINT1CR.bit.enable =1; //启用XINT1
对于GPIO10:
GpioCtrlRegs.GPAMUX1.bit.GPIO10 = 0;// GPIO10 = GPIOCtrlRegs.GPAQSEL1.bit.GPIO10 = 3;//异步输入 GpioIntRegs.GPIOLPMSEL.bit.GPIO10=1;// GPIOGPIO10将唤醒设备
以下是用于读取GPIO端口A的中断代码:
中断void XINT1_ISR(void) { ReadData =(GpioDataRegs.GPADAT.ALL & 0x0万FF);// 确认此中断以从组1 PIeCtrlRegs.PIEACK/ALL = PIEACK_Group1; }获取更多信息
但我不知道如何编写代码来将触发器GPIO 10连接到这两个中断,请帮助。
谢谢!
(我使用的是F2.8055万,其中controlSUITE中的示例代码为ExternalInterrupts.c)