c - LPC1769 FIOPIN 如何工作?

标签 c gpio

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

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

现在在这种情况下,第 1 个 4 被屏蔽 FFFF 但为什么 a 给我 0x00002AAA? FIOPIN 对这些位有何影响?

最佳答案

如 LPC1769 数据表第 16 页所述:

Port 2: Port 2 is a 32-bit I/O port with individual direction controls for each bit. The operation of port 2 pins depends upon the pin function selected via the pin connect block. Pins 14 through 31 of this port are not available.

那么从 31 到 14 的所有位始终为 0。

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

关于c - LPC1769 FIOPIN 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30046604/

相关文章:

c - 为什么 SP(显然)存储在 Cortex-M3 的异常条目上?

c++ - 为什么 (void) 0 在 C 和 C++ 中是无操作?

python - 使用 python3 和 raspberry pi3 的两个按钮 react 游戏

c++ - ATtiny85 数字 "on"输出无法提供 5 V

c++ - 如何在 Linux GPIO 中使用 boost::asio

python - 如何使用 gpiozero button.when_pressed 函数来使用输入和输出整数的函数?

C 预处理器宏

c - 使用 X 宏的特定条目

C 指针 "type ** name"与 "type * name[]"作为参数

javascript - 树莓派 PHP GPIO 读取