GPIO_OutputMode 枚举

标头: #include <applibs/gpio.h>

GPIO 输出模式的选项。

GPIO 的 输出值GPIO_SetValue 函数设置。

typedef enum {
    GPIO_OutputMode_PushPull = 0,
    GPIO_OutputMode_OpenDrain = 1,
    GPIO_OutputMode_OpenSource = 2
} GPIO_OutputMode;

GPIO_OutputMode_PushPull

配置 GPIO 输出引脚,使其在驱动低时接收器电流,并在驱动高时提供电流。 下表总结了该行为:

GPIO 输出值 GPIO 输出驱动为
GPIO_Value_Low 逻辑状态 0,当前接收器
GPIO_Value_High 逻辑状态 1,当前源

当单个单向接口(如 SPI 或 UART)连接到 GPIO 输出引脚时,使用此模式。 此模式不允许在总线配置中将多个设备连接在一起。

GPIO_OutputMode_OpenDrain

配置 GPIO 输出引脚,使其在低驱动时接收器电流;它无法源当前。 下表总结了该行为:

GPIO 输出值 GPIO 输出驱动为
GPIO_Value_Low 逻辑状态 0,当前接收器
GPIO_Value_High 高抗 (或逻辑状态 1,外部上拉电阻器)

当多个双向接口(如 I2C)连接到总线配置中的 GPIO 输出引脚时,请使用此模式。 当连接接口的所有输出都处于高阻态时,GPIO 输出引脚可以通过外部上拉电阻器驱动到逻辑 1。 任何连接的接口都可以使用其开漏输出将线路拉取到逻辑 0。

GPIO_OutputMode_OpenSource

配置 GPIO 输出引脚,使其在驱动高时提供电流;它无法接收电流。 下表总结了该行为:

GPIO 输出值 GPIO 输出驱动为
GPIO_Value_Low 高抗 (或逻辑状态 0,外部下拉式电阻器)
GPIO_Value_High 逻辑状态 1,当前源

此模式没有众所周知的用途,但它适用于想要使用它的用户。