(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 开漏:推挽自己就能输出高低电平,开漏需要外援(电阻)拉高。
这样是不是更接地气? 😊
1689

被折叠的 条评论
为什么被折叠?



