STM32 GPIO模式详解及其应用场景全面总结

GPIO(通用输入/输出)在 STM32 微控制器中有多种输入输出模式,每种模式适用于不同的场合。以下是常见的 GPIO 输入输出模式及其应用场景的总结:

一. 输入模式

  • 1、浮空输入模式(GPIO_Mode_IN_FLOATING)

  • 应用场合:

    串口通信(如 UART、USART)中的 RX 引脚:适用于接收端输入,由外部设备控制电平变化。

    外部传感器信号输入:如霍尔传感器、红外传感器、光电开关,信号电平由传感器提供。

    外部中断信号输入:如设置为外部中断的引脚,外部设备生成中断信号时检测电平变化。

    数字输入信号检测:如外部设备输出的数字信号(0 或 1),用于数字信号传输与检测。

    2、上拉输入模式(GPIO_Mode_IPU)

    应用场合:

    按键输入:适用于机械按键或拨动开关,未按下时内部上拉电阻将输入保持为高电平,按下时接地为低电平。

    IIC 通信 SDA 引脚:IIC 通信中的数据线需要保持默认高电平,以确保总线上的数据传输正常。

    SPI 通信中的从设备选择引脚(NSS):通常在无信号输入时保持高电平,当主设备选择时拉低电平以激活从设备。

    开关量信号输入:如继电器状态检测、逻辑电平信号输入,未触发时输入保持为高电平。

    电源检测引脚:检测电源状态,如上拉至高电平检测到正常供电,掉电时检测低电平。

    3、下拉输入模式(GPIO_Mode_IPD)

    应用场合:

    CAN_RX 引脚:接收 CAN 总线上的信号,默认低电平,用于确保总线没有信号时引脚处于稳定低电平状态。

    按键输入:用于按钮接地触发的电路设计,按钮未按下时通过内部下拉电阻保持低电平。

    数字电路信号输入:如默认电平为低的信号输入,确保未连接时输入稳定在低电平。

    光电开关或其他开关量传感器输入:用于下拉电阻保持低电平的状态,当检测到信号时由外部信号拉高。

    外部设备低电平状态检测:适用于需要默认检测低电平信号的电路设计。

    4、模拟输入模式(GPIO_Mode_AIN)

    应用场合:

    ADC 模拟信号采集:用于采集来自传感器的模拟信号,如温度传感器、电压传感器、光敏传感器等模拟量信号。

    电池电压检测:通过 ADC 采集电池电压,用于电源管理。

    光强检测:使用光敏传感器,将光信号转为电压信号输入 ADC 进行测量。

    电流检测:通过分流电阻和运算放大器采集电流信号,转换为电压信号输入 ADC。

    湿度、气压等环境监测传感器:如温湿度传感器、气压传感器的模拟信号输入。

    一、 输出模式

    1、推挽输出模式(GPIO_Mode_Out_PP)

    应用场合:

    LED 驱动:用于控制 LED 灯的亮灭,推挽模式能够提供足够的电流驱动 LED。

    蜂鸣器驱动:控制蜂鸣器的开关,提供稳定的高低电平以驱动蜂鸣器发声。

    继电器控制:用于控制继电器的开关,通过推挽输出提供驱动电流。

    电机控制:用于驱动小型直流电机,通过高低电平控制电机启动和停止。

    数据传输引脚:用于一些需要提供强电平信号的总线通信,如 SPI 通信中的 SCK、MOSI、MISO 引脚。

    状态指示灯控制:用于控制各种状态指示灯,如电源指示灯、故障指示灯、通信指示灯。

    2、开漏输出模式(GPIO_Mode_Out_OD)

    应用场合:

    IIC 通信 SCL 和 SDA 引脚:IIC 总线上的数据线和时钟线均采用开漏输出模式,通过外部上拉电阻进行数据线状态控制。

    多设备通信总线:如在一条总线上有多个设备时,开漏输出可以避免信号冲突,允许多个设备共享一条数据线。

    GPIO 中断信号输出:一些外部设备需要发送中断信号到 MCU,使用开漏模式可通过外部上拉电阻共享中断信号线。

    电源管理:用于切换不同电压域的控制电路,开漏输出允许在不同电压域之间进行兼容。

    电平转换:通过外部上拉电阻适配不同电压电平的器件,例如 5V 与 3.3V 设备通信时。

    3、复用功能推挽输出模式(GPIO_Mode_AF_PP)

    应用场合:

    UART 通信 TX 引脚:用于 UART 串口通信的发送端,通过复用功能进行推挽输出。

    SPI 通信:如 SCK(时钟线)、MOSI(主输出从输入)、MISO(主输入从输出)引脚。

    CAN 通信 TX 引脚:用于 CAN 总线通信中的发送端,推挽模式能够提供稳定的驱动电流。

    PWM 信号输出:用于伺服电机或 DC 电机的控制,生成精确的 PWM 信号输出。

    外设控制信号:如控制外部设备的时钟、使能信号,推挽模式提供稳定的高低电平切换。

    4、复用功能开漏输出模式(GPIO_Mode_AF_OD)

    应用场合:

    IIC 通信 SDA 和 SCL 引脚:总线上多个设备共享数据和时钟线,开漏模式确保信号安全传输。

    SMBus 通信:用于类似 IIC 的总线通信协议,多个设备共用数据线和时钟线。

    1-Wire 通信:开漏输出用于单总线通信协议的总线数据传输,支持多设备共用一根数据线。

    外部设备中断信号线:用于 MCU 接收来自多个外设的中断信号,确保不会发生电平冲突。

    电源管理信号:控制电压域的转换器,通过开漏输出控制电源开关和设备使能。

    作者:没道理hhhhh

    物联沃分享整理
    物联沃-IOTWORD物联网 » STM32 GPIO模式详解及其应用场景全面总结

    发表回复