我尝试使用 GPIO 端口 G 引脚0、1和2来生成单独的中断。 3个引脚的中断起作用、不同之处在于引脚1或2上的任何中断也总是会向引脚0 ISR 生成中断。 Periperal 驱动程序库中的 GPIOIntEnable()具有以下注释:
注:
如果此调用用于启用 GPIO 端口 P 或 Q 上的摘要中断(GPIOIntTypeSet())
在未启用 GPIO_discrete 的情况下)、则这些端口的所有单独中断必须为
在 GPIO 模块中使用 GPIOIntEnable()使能,除了引脚0的中断外,所有中断都必须是
在 NVIC 中使用 IntDisable()函数禁用。 端口的中断汇总为
路由到 INT_GPIOP0或 INT_GPIOQ0、必须启用该引脚才能处理中断。 如果
否则、任何保持启用状态的 GPIO 引脚中断也会触发
单个中断。
我的代码是:
GPIOIntTypeSet (GPIO_PORTQ_BASE、
PQ_FAN1Cnt_bit |
PQ_FAN2cn_BIT |
PQ_FAN3Cnt_bit |
GPIO_Ddiscrete _INT、
GPIO_FALLING_EDGE);
GPIOIntRegisterPin (GPIO_PORTQ_BASE、0、FAN1_Interrupt);
GPIOIntRegisterPin (GPIO_PORTQ_BASE、1、FAN2_Interrupt);
GPIOIntRegisterPin (GPIO_PORTQ_BASE、2、FAN3_Interrupt);
#define INT_GPIOG_TM4C129 47.
IntDisable (INT_GPIOG_TM4C129); //禁用非每引脚中断
//在 GPIO_INT_PIN_0上。
GPIOIntEnable (GPIO_PORTQ_BASE、GPIO_INT_PIN_0 |
GPIO_INT_PIN_1 |
GPIO_INT_PIN_2);
我硬编码 了 inc/hw_ints.h 中的"#define INT_GPIOG_TM4C129 47" 、因为当我包含它时、我会得到一系列"宏的不兼容重拨..." 从 tm4c1290ncppdt.h"
谢谢、Doug