STM32单片机GPIO的配置模式通俗解释

(1)GPIO_Mode_AIN 模拟输入

(2)GPIO_Mode_IN_FLOATING 浮空输入

(3)GPIO_Mode_IPD 下拉输入

(4)GPIO_Mode_IPU 上拉输入

(5)GPIO_Mode_Out_OD 开漏输出

(6)GPIO_Mode_Out_PP 推挽输出

(7)GPIO_Mode_AF_OD 复用开漏输出

(8)GPIO_Mode_AF_PP 复用推挽输出

1. 模拟输入(GPIO_Mode_AIN)

  • 功能:当“电压表”用,测量外部电压值(比如测电池还剩多少电)。
  • 特点
    • 不能当普通开关用(比如不能控制LED亮灭)。
    • 内部电阻断开,避免干扰测量。
  • 例子:测温度传感器、光照传感器的电压。

2. 浮空输入(GPIO_Mode_IN_FLOATING)

  • 功能:当“耳朵”听外部信号,但自己不主动拉高或拉低电平。
  • 特点
    • 如果外部没信号,可能听到“杂音”(电平不稳定)。
  • 例子:接麦克风、或者需要外部电路自己决定电平的场景(比如UART通信)。

3. 下拉输入(GPIO_Mode_IPD)

  • 功能:默认把引脚“拉低到地”(比如默认是0),外部信号可以把它拉高。
  • 例子
    • 按钮的一端接电源,按下时引脚变高电平(比如电脑键盘按键)。

4. 上拉输入(GPIO_Mode_IPU)

  • 功能:默认把引脚“拉高到电源”(比如默认是1),外部信号可以把它拉低。
  • 例子
    • 按钮的一端接地,按下时引脚变低电平(比如手机电源键)。

5. 开漏输出(GPIO_Mode_Out_OD)

  • 功能:输出模式,但只能“拉低电平”,拉高需要外接电阻帮忙。
  • 特点
    • 多个设备可以共用一条线,避免冲突(比如一群人讨论,谁都能说“不同意”,但“同意”需要举手)。
  • 例子:I2C通信、接不同电压的设备(比如3.3V和5V器件通信)。

6. 推挽输出(GPIO_Mode_Out_PP)

  • 功能:输出模式,能直接“推高电平”或“拉低电平”(像个大力士,能主动推和拉)。
  • 特点
    • 驱动能力强,适合高速切换。
  • 例子:控制LED亮灭、SPI通信、PWM调电机速度。

7. 复用开漏输出(GPIO_Mode_AF_OD)

  • 功能:把引脚交给某个“外设模块”控制(比如I2C模块),但输出方式还是开漏。
  • 例子:I2C的SDA/SCL引脚(需要多个设备共享总线时)。

8. 复用推挽输出(GPIO_Mode_AF_PP)

  • 功能:把引脚交给某个“外设模块”控制(比如SPI模块),输出方式用推挽。
  • 例子:SPI通信的时钟线(SCK)、UART的发送线(TX)。

一句话总结

  • 输入模式:用来“听”外部信号(按键、传感器等)。
  • 输出模式:用来“控制”外部设备(LED、电机等)。
  • 复用模式:引脚被“外设模块”征用(比如I2C、SPI通信)。
  • 上拉/下拉:解决悬空时的默认电平问题(防误触)。
  • 推挽 vs 开漏:推挽自己就能输出高低电平,开漏需要外援(电阻)拉高。

这样是不是更接地气? 😊

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值