主题中讨论的其他器件:TM4C1231H6PGE
我正在尝试在启用内部上拉的情况下有效地实现开漏 GPIO、但每次更改 GPIO 模式时、库都会复位引脚状态。
如何在不更改 GPIO 其他参数的情况下仅更改引脚方向?
我希望以下代码最终将 GPIO 切换为高电平/低电平、但"GPIODirModeSet (SPI_CSZ、GPIO_DIR_MODE_OUT);"似乎也将输出状态设置为高电平、而不仅仅是方向。
void TestGPIO()
{
#define SPI_CSZ GPIO_PORta_base、GPIO_PIN_3
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
GPIOPadConfigSet (SPI_CSZ、GPIO_Strength _2mA、GPIO_PIN_TYPE_STD_WPU);
GPIOPinWrite (SPI_CSZ、0);
while (1)
{
GPIODirModeSet (SPI_CSZ、GPIO_DIR_MODE_OUT);//将 GPIO 设置为低电平
GPIODirModeSet (SPI_CSZ、GPIO_DIR_MODE_IN);//LET GPIO 变为高电平
}
}
在设置 MODE OUT 之后不能简单地添加"GPIOPinWrite (SPI_CSZ、0);"、因为如果有任何东西连接到 GPIO、将其拉低、那么设置输出模式和将 GPIO 设置为低电平之间的时间将驱动为高电平、 从而导致 GPIO 上的争用和毛刺脉冲。
如何更改 GPIO 的方向而不接触有关 GPIO 的任何其他信息?
BR、
Steve