器件型号: OMAP-L138
我正在尝试控制 GPIO1[3]和 GPIO1[4] 使用了 多路复用控制 4 寄存器 (PINMUX4) 。 相关的引脚功能如下:
-
SPI1_SCS[5] / UART2_RXD / I2C1_SCL / GP1[3] -
SPI1_SCS[4] / UART2_TXD / I2C1_SDA / GP1[2] -
SPI1_SCS[7] / I2C0_SCL / TM64P2_OUT12 / GP1[5] -
SPI1_SCS[6] / I2C0_SDA / TM64P3_OUT12 / GP1[4]
我已按如下方式配置了 GPIO 的引脚:
#define GPIO_PINMUX (4)
#define GPIO_PINMUX_MASK (0x00ffff00u)
#define GPIO_PINMUX_VALUE (0x00888800u)
CPU_SYSCFG0->PINMUX[GPIO_PINMUX] =
(CPU_SYSCFG0->PINMUX[GPIO_PINMUX] & ~GPIO_PINMUX_MASK) |
(GPIO_PINMUX_VALUE & GPIO_PINMUX_MASK);
我正在使用以下命令设置/清除 GPIO 输出:
CPU_GPIO->Banks[0].SET_DATA = (1 << 20) | (1 << 21) | (1 << 19) | (1 << 18);
CPU_GPIO->Banks[0].CLR_DATA = (1 << 20) | (1 << 21) | (1 << 19) | (1 << 18);
采用以下配置:
-
我能够控制 GP1[4]和 GP1[5] 成功。
-
不过、 GP1[3]和 GP1[4] 始终显示 IN_DATA01 寄存器中为高电平 、我无法控制这些引脚。
请说明原因 GP1[3]和 GP1[4] 保持高电平、以及如何正确配置它们以进行 GPIO 控制?