引脚类 – 控制 I/O 引脚

使用型号:

使用型号:

所有板针都预定义为 pyb.Pin.board.Name:

x1_pin = pyb.Pin.board.X1

g = pyb.Pin(pyb.Pin.board.X1, pyb.Pin.IN)

与电路板引脚对应的 CPU 引脚可用作pyb.Pin.cpu.Name. 对于 CPU 引脚,名称是端口字母后跟引脚编号。在 PYBv1.0 上,pyb.Pin.board.X1pyb.Pin.cpu.A0引脚是一样的。

您还可以使用字符串:

g = pyb.Pin('X1', pyb.Pin.OUT_PP)

用户可以添加自己的名字:

MyMapperDict = { 'LeftMotorDir' : pyb.Pin.cpu.C12 }
pyb.Pin.dict(MyMapperDict)
g = pyb.Pin("LeftMotorDir", pyb.Pin.OUT_OD)

并且可以查询映射:

pin = pyb.Pin("LeftMotorDir")

用户还可以添加自己的映射函数:

def MyMapper(pin_name):
   if pin_name == "LeftMotorDir":
       return pyb.Pin.cpu.A0

pyb.Pin.mapper(MyMapper)

因此,如果您要调用: then将直接传递给映射器函数。pyb.Pin("LeftMotorDir", pyb.Pin.OUT_PP) then "LeftMotorDir"

总而言之,以下顺序决定了事物如何映射到有序引脚号:

  1. 直接指定pin对象

  2. 用户提供的映射函数

  3. 用户提供的映射(对象必须可用作字典键)

  4. 提供与板针匹配的字符串

  5. 提供与 CPU 端口/引脚匹配的字符串

您可以设置pyb.Pin.debug(True) 以获取有关特定对象如何映射到引脚的一些调试信息。

当引脚启用 Pin.PULL_UPPin.PULL_DOWN拉模式时,该引脚有一个有效的 40k 欧姆电阻,分别将其拉至 3V3 或 GND(引脚 Y5 除外,它具有 11k 欧姆电阻)。

现在每次在 gpio 引脚上看到下降沿时,都会执行回调。注意:机械按钮具有“弹跳”功能,按下或松开开关通常会产生多个边沿。请参阅:http://www.eng.utah.edu/~cs5780/debouncing.pdf f了解详细说明以及各种去抖动技术。

所有 pin 对象都通过 pin mapper 来产生一个 gpio pin。

构造函数

class pyb.Pin(id, ...)

创建一个与 id 关联的新 Pin 对象。如果给出了额外的参数,它们将用于初始化引脚。见 pin.init()

类方法

classmethod Pin.debug([state])

获取或设置调试状态(TrueFalse 打开或关闭)。

classmethod Pin.dict([dict])

获取或设置 pin mapper 字典。

classmethod Pin.mapper([fun])

获取或设置引脚映射器功能。

方法

Pin.init(mode, pull=Pin.PULL_NONE, \*, value=None, alt=-1)

初始化引脚:

  • 模式可以是以下之一:

    • Pin.IN - 配置输入引脚;

    • Pin.OUT_PP - 配置输出引脚,带推挽控制;

    • Pin.OUT_OD - 为输出配置引脚,具有开漏控制;

    • Pin.AF_PP - 配置引脚为复用功能,拉-拉;

    • Pin.AF_OD - 将引脚配置为复用功能,漏极开路;

    • Pin.ANALOG - 配置模拟引脚。

  • 拉可以是以下之一:

    • Pin.PULL_NONE - 没有上拉或下拉电阻;

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

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

  • value如果不是 None 将在启用引脚之前设置端口输出值。

  • 当 mode 是Pin.AF_PP 或时,可以使用alt Pin.AF_OD 来设置与引脚关联的备用功能之一的索引或名称。这个 arg 以前称为af,如果需要,它仍然可以使用。

返回:None.

Pin.value([value])

获取或设置引脚的数字逻辑电平:

  • 不带参数,根据引脚的逻辑电平返回 0 或 1。

  • 根据 value 给定,设置引脚的逻辑电平。 value可以是任何可以转换为布尔值的东西。如果转换为True,则该引脚设置为高电平,否则设置为低电平。

Pin.__str__()

返回描述 pin 对象的字符串。

Pin.af()

返回引脚当前配置的复用功能。返回的整数将与 init 函数的 af 参数的允许常量之一匹配。

Pin.af_list()

返回此引脚可用的备用功能数组。

Pin.gpio()

返回与此引脚关联的 GPIO 模块的基地址。

Pin.mode()

返回引脚的当前配置模式。返回的整数将与 init 函数的 mode 参数的允许常量之一匹配。

Pin.name()

获取引脚名称。

Pin.names()

返回此引脚的 CPU 和板名称。

Pin.pin()

获取密码。

Pin.port()

获取 pin 端口。

Pin.pull()

返回当前配置的引脚拉力。返回的整数将与 init 函数的 pull 参数的允许常量之一匹配。

常数

Pin.AF_OD

使用开漏驱动将引脚初始化为复用功能模式

Pin.AF_PP

使用推挽驱动将引脚初始化为复用功能模式

Pin.ANALOG

将引脚初始化为模拟模式

Pin.IN

将引脚初始化为输入模式

Pin.OUT_OD

使用开漏驱动将引脚初始化为输出模式

Pin.OUT_PP

使用推挽驱动将引脚初始化为输出模式

Pin.PULL_DOWN

启用引脚上的下拉电阻

Pin.PULL_NONE

不要在引脚上启用任何上拉或下拉电阻

Pin.PULL_UP

使能引脚上的上拉电阻

PinAF 类 – 引脚交替功能

引脚代表微处理器上的物理引脚。每个引脚可以具有多种功能(GPIO、I2C SDA 等)。每个 PinAF 对象代表一个引脚的特定功能。

使用型号:

x3 = pyb.Pin.board.X3
x3_af = x3.af_list()

x3_af 现在将包含在引脚 X3 上可用的 PinAF 对象数组。

对于 pyboard,x3_af 将包含:

[Pin.AF1_TIM2, Pin.AF2_TIM5, Pin.AF3_TIM9, Pin.AF7_USART2]

通常,每个外设都会自动配置 af,但有时在多个引脚上可以使用相同的功能,并且需要更多的控制。

要将 X3 配置为公开 TIM2_CH3,您可以使用:

pin = pyb.Pin(pyb.Pin.board.X3, mode=pyb.Pin.AF_PP, af=pyb.Pin.AF1_TIM2)

或者:

pin = pyb.Pin(pyb.Pin.board.X3, mode=pyb.Pin.AF_PP, af=1)

方法

pinaf.__str__()

返回一个描述替代函数的字符串。

pinaf.index()

返回备用函数索引。

pinaf.name()

返回备用函数的名称。

pinaf.reg()

返回与分配给此备用功能的外设关联的基址寄存器。例如,如果备用函数是 TIM2_CH3,则返回 stm.TIM2