Skip to main content
控制数字输入/输出引脚,用于数字信号传递和控制。

导入

方法

方法参考

Net.get(name, type=NetType.GPIO)

按名称获取一个 GPIO Net。
参数: 返回: GPIO Net 实例

input()

读取该引脚的数字状态。
返回: int - 低电平为 0,高电平为 1

output(level)

设置该引脚的数字状态。

wait_for_level(level, timeout=None, ...)

等待引脚到达目标电平。该调用会阻塞,直到引脚读到指定电平或超时。 LabJack T7 使用最高 20 kHz 的硬件流式采样进行快速边沿检测。其他硬件(包括 LabJack U3)使用软件轮询。
参数: 返回: float - 检测到该电平所经过的时间,单位秒 抛出: 在到达目标电平之前超时,则抛出 TimeoutError 不同硬件的行为:

示例

读取按键状态

控制 LED

等待中断

用按键控制 LED

翻转输出

受支持的硬件

引脚命名

LabJack T7: LabJack U3:
  • FIO0-FIO3 不是 GPIO 引脚。在 U3-HV 上它们是固定的高压模拟输入,驱动程序会拒绝使用它们。请用 AIN0-AIN3 上的 ADC Net 读取它们。
  • input() 读取引脚时不改变它的方向。output() 会把引脚设为输出。
  • FIO4-FIO7EIO0-EIO7 同样是模拟输入。调用 GPIO 会把引脚设为数字模式。
  • EIO 和 CIO 线位于 U3 的 DB15 连接器上。
MCC USB-202:

多通道 FTDI 适配器

FTDI Net 从该 Net 记录的 params.interface 取得通道,可以是 A-D0-3。请用 lager nets add --interface 设置它。没有 interface 的 Net 使用通道 A,在单通道的 FT232H 上这也是唯一的选择。 GPIO 以异步 bitbang 方式运行,不需要 MPSSE 引擎,因此该芯片的每个通道都可以使用。请注意引脚宽度不同:FT232H 和 FT2232H 提供 ADBUS0-7 加 ACBUS0-7(16 位),而 FT4232H 的每个通道为 8 个引脚。 同一颗芯片上各 Net 类型之间如何分配通道,请参阅 Nets

说明

  • GPIO Net 可直接使用,不需要 enable()/disable() 调用
  • input() 返回 0 或 1
  • output() 接受整数(0/1)或字符串(“high”/“low”、“on”/“off”、“true”/“false”)
  • wait_for_level() 接受整数电平(01),并阻塞调用线程直到检测到目标电平
  • LabJack T7 的 wait_for_level() 使用硬件流式采样,可实现亚毫秒级检测
  • Net 名称必须与 Lager Box 上配置的名称一致