引脚类 – 控制 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.X1
和
pyb.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"
总而言之,以下顺序决定了事物如何映射到有序引脚号:
直接指定pin对象
用户提供的映射函数
用户提供的映射(对象必须可用作字典键)
提供与板针匹配的字符串
提供与 CPU 端口/引脚匹配的字符串
您可以设置pyb.Pin.debug(True)
以获取有关特定对象如何映射到引脚的一些调试信息。
当引脚启用 Pin.PULL_UP
或Pin.PULL_DOWN
拉模式时,该引脚有一个有效的 40k 欧姆电阻,分别将其拉至 3V3 或 GND(引脚 Y5 除外,它具有 11k 欧姆电阻)。
现在每次在 gpio 引脚上看到下降沿时,都会执行回调。注意:机械按钮具有“弹跳”功能,按下或松开开关通常会产生多个边沿。请参阅:http://www.eng.utah.edu/~cs5780/debouncing.pdf f了解详细说明以及各种去抖动技术。
所有 pin 对象都通过 pin mapper 来产生一个 gpio pin。
类方法¶
-
classmethod
Pin.
debug
([state])¶ 获取或设置调试状态(
True
或False
打开或关闭)。
-
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
或时,可以使用altPin.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 参数的允许常量之一匹配。
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)