class Pin – 控制I/O引脚¶
引脚是控制I/O引脚的基本对象。它具有设置引脚模式(输入、输出等)的方法,以及获取和设置数字逻辑电平的方法。对于引脚的模拟控制,请参阅ADC类。
使用模型:
所有电路板引脚都预定义为 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)
因此,如果调用:pyb.Pin("LeftMotorDir", pyb.Pin.OUT_PP)
,那么 "LeftMotorDir"
将直接传递给映射器函数。
总结一下,以下顺序确定如何将事物映射到序数引脚号:
直接指定引脚对象
用户提供的映射函数
用户提供的映射(对象必须可用作字典键)
提供与板载引脚匹配的字符串
提供与CPU端口/引脚匹配的字符串
您可以设置 pyb.Pin.debug(True)
以获取有关特定对象如何映射到引脚的一些调试信息。
所有引脚对象都通过引脚映射器进行处理,以得到其中一个GPIO引脚。
构造¶
- class pyb.Pin(id, ...)¶
创建与id相关联的新Pin对象。如果提供了额外的参数,则使用它们来初始化引脚。参见
pin.init()
。
类方法¶
- classmethod Pin.debug([state])¶
获取或设置调试状态(
True
表示开启,False
表示关闭)。
- classmethod Pin.dict([dict])¶
获取或设置引脚映射字典。
- classmethod Pin.mapper([fun])¶
获取或设置引脚映射函数。
方法¶
- Pin.init(mode, pull=Pin.PULL_NONE, *, value=None, alt=-1)¶
初始化引脚:
mode 可以是以下之一:
Pin.IN
- 将引脚配置为输入;Pin.OUT_PP
- 将引脚配置为输出,带推挽控制;Pin.OUT_OD
- 将引脚配置为输出,带开漏控制;Pin.ALT
- 将引脚配置为替代功能,输入或输出;Pin.AF_PP
- 将引脚配置为替代功能,推挽;Pin.AF_OD
- 将引脚配置为替代功能,开漏;Pin.ANALOG
- 将引脚配置为模拟。
pull 可以是以下之一:
Pin.PULL_NONE
- 不启用上拉或下拉电阻;Pin.PULL_UP
- 启用上拉电阻;Pin.PULL_DOWN
- 启用下拉电阻。
当引脚启用
Pin.PULL_UP
或Pin.PULL_DOWN
拉模式时,该引脚具有将其分别拉向3V3或GND的有效40k欧姆电阻(除了引脚 Y5 具有11k欧姆电阻)。如果不是 None,value 将在启用引脚之前设置端口输出值。
alt 可以在模式为
Pin.ALT
、Pin.AF_PP
或Pin.AF_OD
时使用,以设置与引脚关联的替代功能之一的索引或名称。如果需要,此参数以前称为 af ,仍然可以使用。
返回:
None
。
- Pin.value([value])¶
获取或设置引脚的数字逻辑电平:
没有参数时,根据引脚的逻辑电平返回0或1。
给出
value
时,设置引脚的逻辑电平。value
可以转换为布尔值的任何内容。如果转换为True
,则引脚设置为高电平,否则设置为低电平。
- Pin.__str__()¶
返回描述引脚对象的字符串。
- Pin.af()¶
返回引脚当前配置的替代功能。返回的整数将匹配 init 函数的 af 参数的允许的常量之一。
- Pin.af_list()¶
返回此引脚可用的替代功能数组。
- Pin.gpio()¶
返回与此引脚关联的 GPIO 块的基地址。
- Pin.mode()¶
返回引脚当前配置的模式。返回的整数将匹配 init 函数的 mode 参数的允许的常量之一。
- Pin.name()¶
获取引脚名称。
- Pin.names()¶
返回此引脚的cpu和板载名称。
- Pin.pin()¶
获取引脚号。
- Pin.port()¶
获取引脚端口。
- Pin.pull()¶
返回引脚当前配置的拉模式。返回的整数将匹配 init 函数的 pull 参数的允许的常量之一。
常量¶
- Pin.ALT¶
将引脚初始化为输入或输出的替代功能模式
- 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¶
在引脚上启用上拉电阻
class PinAF – 引脚替代功能¶
Pin代表微处理器上的物理引脚。每个引脚都可以有各种功能(GPIO、I2C SDA等)。每个PinAF对象表示引脚的特定功能。
使用模型:
x3 = pyb.Pin.board.X3
x3_af = x3.af_list()
现在,x3_af 将包含一个 PinAF 对象数组,这些对象在引脚 X3 上可用。
- 对于 pyboard,x3_af 将包含:
[Pin.AF1_TIM2, Pin.AF2_TIM5, Pin.AF3_TIM9, Pin.AF7_USART2]
通常,每个外设都会自动配置替代功能,但有时相同的功能可能在多个引脚上可用,并且希望有更多控制。
要将 X3 配置为暴露 TIM2_CH3,您可以使用:
pin = pyb.Pin(pyb.Pin.board.X3, mode=pyb.Pin.ALT, alt=pyb.Pin.AF1_TIM2)
或:
pin = pyb.Pin(pyb.Pin.board.X3, mode=pyb.Pin.ALT, alt=1)
方法¶
- pinaf.__str__()¶
返回描述替代功能的字符串。
- pinaf.index()¶
返回替代功能索引。
- pinaf.name()¶
返回替代功能的名称。
- pinaf.reg()¶
返回与分配给此替代功能的外设相关联的基本寄存器。例如,如果替代功能是 TIM2_CH3,则会返回 stm.TIM2