LPC1769 FIOPIN如何工作?

时间:2015-05-05 07:23:07

标签: c gpio

我目前正在研究LPC1769上的GPIO,我有一个我不太明白的问题。假设我有以下代码行:

LPC_GPIO2 -> FIODIR = 0xFFFFFFFF;
FIO_SetMask(2, 0xFFFF0000, 1); 
LPC_GPIO2-> FIOPIN = 0xAAAAAAAA;
a = GPIO_ReadValue(2);

现在在这种情况下,前4个是屏蔽的FFFF,但为什么给我0x00002AAA? FIOPIN是如何影响这些位的?

2 个答案:

答案 0 :(得分:4)

如LPC1769数据表中所述,第16页:

  

端口2:端口2是32位I / O端口,具有单独的方向控制   每一点。端口2引脚的操作取决于引脚功能   通过引脚连接块选择。 此端口的第14到31针   不可用。

然后从31到14的所有位始终为0.

您将端口设置为0xAAAAAAAA,但最后设置的位是第13位,然后是0x00002AAA

答案 1 :(得分:0)

那是因为你的设备在P2 [0]到P2 [13]的端口2上只有GPIO,所以显然P2 [14]到P2 [31]总是0。