打印
[STM32MP1]

STM32的GPIO输出模式,推挽输出和开漏输出的区别

[复制链接]
1033|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
而服务器人|  楼主 | 2024-8-14 13:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
“推挽输出和开漏输出的主要区别在于MOS管的控制方式。推挽输出可以直接输出高电平或低电平,具有较强的驱动能力。而开漏输出只有低电平和高阻态,需要外接上拉电阻才能输出高电平。线与特性在I2C总线中非常重要,可以实现总线上的多设备通信仲裁。”

使用特权

评论回复
沙发
micoccd| | 2024-8-14 15:48 | 只看该作者
为啥我用起来感觉没啥区别啊

使用特权

评论回复
板凳
狄克爱老虎油| | 2024-8-17 23:30 | 只看该作者
外部都会接上拉,芯片配置不配置上拉都行

使用特权

评论回复
地板
kqh11a| | 2024-8-28 12:19 | 只看该作者
这两种输出方式在电子电路中有各自的应用和特点,尤其是在涉及到多设备通信和总线仲裁的场景中,例如 I2C 总线。

使用特权

评论回复
5
公羊子丹| | 2025-3-16 07:50 | 只看该作者
说得很清楚,推挽输出适合驱动能力要求高的场合,而开漏输出更适合用于多设备总线通信。

使用特权

评论回复
6
周半梅| | 2025-3-16 07:51 | 只看该作者
开漏输出如果没有上拉电阻,输出高电平时可能会悬空,导致逻辑异常,很多人都会忽略这一点。

使用特权

评论回复
7
帛灿灿| | 2025-3-16 07:54 | 只看该作者
在 STM32MP1 里,某些 GPIO 还能配置为开漏带上拉的模式,这样就不用外接上拉电阻了。

使用特权

评论回复
8
童雨竹| | 2025-3-16 07:55 | 只看该作者
I2C 这种协议必须用开漏输出配合上拉电阻,否则多个设备连接时可能会导致总线冲突。

使用特权

评论回复
9
万图| | 2025-3-16 07:56 | 只看该作者
如果是驱动 LED,推挽输出通常是更好的选择,开漏输出的话 LED 只能靠上拉电阻提供的微弱电流点亮。

使用特权

评论回复
10
Wordsworth| | 2025-3-16 07:57 | 只看该作者
有些传感器的中断信号是开漏输出的,所以 STM32 端也需要配置成开漏模式,并加上拉电阻。

使用特权

评论回复
11
Bblythe| | 2025-3-16 07:58 | 只看该作者
推挽模式的驱动能力更强,如果是控制 MOSFET 或者蜂鸣器之类的外设,推挽输出会更稳定。

使用特权

评论回复
12
Pulitzer| | 2025-3-16 07:59 | 只看该作者
STM32MP1 里 GPIO 还能设定速率(低速、中速、高速、超高速),这个在推挽模式下对驱动能力影响很大。

使用特权

评论回复
13
Uriah| | 2025-3-16 08:00 | 只看该作者
有时候开漏模式可以用作简单的“线与”逻辑,比如多个设备共享一个信号线时,任何设备拉低信号线都会影响整个系统。

使用特权

评论回复
14
Clyde011| | 2025-3-16 08:01 | 只看该作者
STM32MP1 的 GPIO 复用功能很强大,推挽和开漏只是基本配置之一,像 AF(复用功能)模式还能让 GPIO 变成专用外设引脚,比如 SPI、UART、I2C 等。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

39

主题

436

帖子

0

粉丝