MicroPython GPIO模式全解析:IN、OUT、OPEN_DRAIN到底该怎么选?避坑指南来了
刚接触MicroPython的硬件开发者,往往会在GPIO模式选择上栽跟头。上周有位读者在驱动I2C设备时,因为错误配置了OPEN_DRAIN模式,导致整个总线通信异常。这让我意识到,深入理解GPIO工作模式的重要性不亚于掌握编程语法本身。
1. GPIO模式基础认知
MicroPython的GPIO(通用输入输出)就像硬件世界的万能接口,但不同模式对应着完全不同的电路行为。理解这些差异,是避免硬件损坏和逻辑错误的第一步。
1.1 五种核心模式对比
先来看张直观的对比表:
| 模式 | 典型应用场景 | 输出特性 | 输入特性 | 特殊说明 |
|---|---|---|---|---|
| Pin.IN | 按钮读取 | 高阻抗状态 | 正常读取 | 需配合上拉/下拉电阻 |
| Pin.OUT | LED控制 | 推挽输出(0/3.3V) | 不建议读取 | 驱动能力强 |
| Pin.OPEN_DRAIN | I2C通信 | 只能拉低或高阻态 | 可读取高阻态时的电平 | 需外接上拉电阻 |
| Pin.ALT | SPI/UART | 由外设控制器管理 | 由外设控制器管理 | 功能取决于具体硬件 |
| Pin.ALT_OPEN_DRAIN | I2C备用功 |


16万+

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



