C GPIO(AHB总线)和APB总线(APB总线)之间的外部中断使用有什么不同吗?

C GPIO(AHB总线)和APB总线(APB总线)之间的外部中断使用有什么不同吗?,c,arm,C,Arm,我已将GPIO PR4配置为在提升边缘上用作外部中断触发器。但中断ISR不会触发。相同的代码在GPIO PC5上运行良好。我的平台是Cortex M3(TI F28M36x) GPIO PC5与PR4(不同的中断源)具有相同的用途,工作良好。 我检查了PR4中的外波(高电平超过3.0V)。 我发现PR4使用AHP总线,而PC5使用APB总线,我想知道这种差异会产生不同的结果吗? 我的配置代码如下所示: SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOR); GP

我已将GPIO PR4配置为在提升边缘上用作外部中断触发器。但中断ISR不会触发。相同的代码在GPIO PC5上运行良好。我的平台是Cortex M3(TI F28M36x)

GPIO PC5与PR4(不同的中断源)具有相同的用途,工作良好。 我检查了PR4中的外波(高电平超过3.0V)。 我发现PR4使用AHP总线,而PC5使用APB总线,我想知道这种差异会产生不同的结果吗? 我的配置代码如下所示:

SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOR);
GPIOPinTypeGPIOInput(GPIO_PORTR_BASE, GPIO_PIN_4);
GPIOPinIntClear(GPIO_PORTR_BASE,GPIO_PIN_4);
GPIOIntTypeSet(GPIO_PORTR_BASE, GPIO_PIN_4, GPIO_BOTH_EDGES);   
IntRegister(INT_GPIOR, IntGPIORHandler);
IntEnable(INT_GPIOR);
GPIOPinIntEnable(GPIO_PORTR_BASE, GPIO_PIN_4);

在CCS工具中调试时从未输入ISR(IntGPIORHandler)。

我在TI社区找到了解决方案。这不会导致AHB问题,但driverlib太旧了。

我使用这些代码来代替“IntRegister()和IntEnable()

IntRegister(148,IntGPIORHandler);
HWREG(0xE000E110)=1
IntRegister(148, IntGPIORHandler);
HWREG(0xE000E110) = 1 << (132 - 128);