Embedded &引用;ARM7-如何读取LPC2368中的端口引脚?”;

Embedded &引用;ARM7-如何读取LPC2368中的端口引脚?”;,embedded,gpio,lpc,embedded-control,Embedded,Gpio,Lpc,Embedded Control,我使用的是LPC2368,其中我必须读取引脚状态,如果它被按下或没有? 在arm7中,我已将该引脚(我必须监视)连接到EINT2。我对pinsel部分感到困惑&我如何知道是否按下了键? 我使用了FIO2PIN并将其存储在某个变量中 x = FIO2PIN; 然后检查条件: if(x == ((IN_Tamper >> 12) & 0X1) == 1) 其中IN_Tamper为0X1000 这种布尔逻辑似乎有点奇怪。将FIOPIN读入X中,并将其与EINT2引脚的掩码值进行

我使用的是LPC2368,其中我必须读取引脚状态,如果它被按下或没有? 在arm7中,我已将该引脚(我必须监视)连接到EINT2。我对pinsel部分感到困惑&我如何知道是否按下了键? 我使用了FIO2PIN并将其存储在某个变量中

x = FIO2PIN;
然后检查条件:

if(x == ((IN_Tamper >> 12) & 0X1) == 1)

其中IN_Tamper为0X1000

这种布尔逻辑似乎有点奇怪。将FIOPIN读入X中,并将其与EINT2引脚的掩码值进行比较。结果将为0或不为0,具体取决于引脚状态。此外,就像@TurboJ所说的,还有更多的东西-你如何处理PINSEL寄存器?请注意,你的问题对于LPC2xxx MCU非常具体。ARM7仅定义处理器核心,不包括GPIO或中断控制器(或任何外围设备)-来自其他供应商的ARM7设备的答案将有所不同-您可能应该更改问题的标题。在_Tamper中
的整个要点是,您不需要“知道”它是位12,并避免使用“幻数”。将其右移12次,未免有失偏颇。因此,您应该测试
(x&IN_Tamper)!=0
将交换机连接到EINT2后,使用中断处理程序可能有意义-否则EINT2不相关,它只是GPIO问题。您尚未实际说明发生了什么,或者此代码是否有效。这可能与以下内容有关:,以及: