Pin – 控制I/O管脚

引脚对象用于控制I/O引脚(也称为GPIO—通用输入/输出)。

Pin对象通常与一个可驱动输出电压和读取输入电压的引脚相关联。 引脚类有设置引脚模式(IN、OUT等)的方法,以及设置数字逻辑的方法。

引脚对象通过使用明确指定某个I/O引脚的标识符来构建。每一个标识符都对应到一个引脚,标识符只能是整数。


使用示例: (以HaaS EDU K1 为例)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
from machine import Pin

# 在引脚#0上创建一个输出引脚
p0 = Pin(36, Pin.OUT)

# 设置该值为低,然后设置为高
p0.value(0)
p0.value(1)

p0.off()
p0.on()

# 在引脚#2上创建一个带有上拉电阻的输入引脚
p2 = Pin(23, Pin.IN, Pin.PULL_UP)

# 读取并打印引脚值
print(p2.value())

函数接口


machine_pin.Pin(id, mode=- 1, pull=- 1, *, value)[源代码]

访问与给定 id 相关联的外围引脚(GPIO引脚)。

参数
  • id(int) – 必选参数,GPIO管脚索引号,具体可用数值请参考硬件手册。

  • mode(int)

    必选参数,指定引脚模式,可选值为下列之一:

    • Pin.IN - 引脚配置为输入。若将之视为输出,则引脚会处于高阻抗状态。

    • Pin.OUT - 引脚配置为(常规)输出。

    • Pin.OPEN_DRAIN - 引脚配置为开漏输出。

  • pull(int)

    可选参数,若引脚与一个(弱)电阻相连,可选值为下列之一:

    • None - 无上拉或下拉电阻。

    • Pin.PULL_UP - 启用上拉电阻。

    • Pin.PULL_DOWN - 启用下拉电阻。

返回

Pin 类句柄

引发

ValueError – EINVAL

machine_pin.init(mode=- 1, pull=- 1, *, value)[源代码]

使用给定参数将引脚重新初始化。只有指定参数将被设置,其余的外围引脚状态将保持不变。更多参数细节,请参见构造函数文件。

参数

返回

None

machine_pin.value(x)[源代码]

该方法允许设置并获取引脚值,这取决于是否提供了参数 x。

如果没有提供参加,则该方法获取引脚的数字逻辑电平,分别返回0或1对应的低电压信号和高电压信号。该方法的行为取决于引脚的模式:

  • Pin.IN - 该方法返回目前在引脚上出现的实际输入值。

  • Pin.OUT - 该方法的行为和返回值未定义。

  • Pin.OPEN_DRAIN - 若该引脚在“0”状态下,则该方法的行为和返回值未定义。否则,若该引脚在“1”状态下,该方法返回目前在引脚上出现的实际输入值。

如果提供了参数值,则该方法设置引脚的数字逻辑电平。参数 x 可为任何可以转换成布尔值的参数。 若转换为 True ,则该引脚设置为状态“1”,否则引脚为状态“0”。 该方法的行为取决于引脚的模式:

  • Pin.IN - 该值储存在引脚的输出缓冲区中。引脚状态不变,始终为高阻抗状态。当它更改为 Pin.OUT 或 Pin.OPEN_DRAIN 模式时,该储存值将在引脚上激活。

  • Pin.OUT - 输出缓冲区立即设置为给定值。

  • Pin.OPEN_DRAIN - 若该值为“0”,引脚则被设置为低电压状态。否则引脚设置为高阻抗状态。

参数

x – 输出值 或 None

返回

None(提供了参数) 或 int 值(未提供参数)

machine_pin.off()[源代码]

向管脚写入0数值(低电平)

参数

返回

None

machine_pin.on()[源代码]

向管脚写入1数值(搞电平)

参数

返回

None

machine_pin.enable()[源代码]

允许IRQ中断

参数

返回

None

machine_pin.disable()[源代码]

禁止IRQ中断

参数

返回

None

machine_pin.irq(handler, trigger, wake=None)[源代码]

配置一个中断处理程序,当引脚的触发器源处于激活状态时,调用该程序。

若引脚模式为 Pin.IN, 则触发器源为引脚上的外部值。 若引脚模式为 Pin.OUT,则触发器源为引脚上的输出缓冲区。

若引脚模式为 Pin.OPEN_DRAIN,

  • 状态为“0”时,触发器源为输出缓冲区;

  • 状态为“1”时,触发器源为外部引脚值。

参数
  • handler – 是中断触发时所调用的可选函数

  • trigger

    配置可产生中断的事件。可选值为:

    • Pin.IRQ_FALLING 下降沿上的中断

    • Pin.IRQ_RISING 上升沿上的中断

    • Pin.IRQ_LOW_LEVEL 低电平上的中断

    • Pin.IRQ_HIGH_LEVEL 高电平上的中断

    这些值可在多个事件中同时进行“或”运算。

  • wake

    选择电源模式,在该模式下中断可唤醒系统。(HaaS硬件不支持该参数) 可选值为:

    • machine.IDLE

    • machine.SLEEP

    • machine.DEEPSLEEP

    这些值可同时进行“或”运算,以使引脚在多种电源模式下生成中断。

返回

None