我目前正在研究LPC1769上的GPIO,我有一个我不太明白的问题。假设我有以下代码行:
LPC_GPIO2 -> FIODIR = 0xFFFFFFFF;
FIO_SetMask(2, 0xFFFF0000, 1);
LPC_GPIO2-> FIOPIN = 0xAAAAAAAA;
a = GPIO_ReadValue(2);
现在在这种情况下,前4个是屏蔽的FFFF,但为什么给我0x00002AAA? FIOPIN是如何影响这些位的?
答案 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。