class Pin --控制I/O引脚

class Pin – control I/O pins

管脚是控制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.x1pyb.Pin.cpu.a0是相同的pin。

您还可以使用字符串:

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”将直接传递给mapper函数。

综上所述,以下顺序决定了如何将事物映射到有序的管脚编号中:

1 . 直接指定Pin对象             

2 . 用户提供的映射函数             

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

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

5 . 提供与CPU端口/插针匹配的字符串

可以设置pyb.pin.debug(True)以获取有关如何将特定对象映射到pin的调试信息。

当一个插脚启用了pin.pull-up或pin.pull-down拉模式时,该插脚有一个有效的40k欧姆电阻,分别将其拉至3v3或GND(具有11k欧姆电阻的插脚Y5除外)。

现在,每次在GPIO管脚上看到下降沿时,都会执行回调。

注意:机械按钮有“弹跳”功能,按下或松开开关通常会产生多个边。请参阅:http://www.eng.utah.edu/~cs5780/debouncing.pdf了解详细的解释,以及各种去块技术。

所有的pin对象都通过pin映射器得到一个gpio pin。

构造类:

class pyb.Pin(id, ...)

创建与ID关联的新pin对象。如果提供了其他参数,则这些参数用于初始化pin。请参见pin.init()。

Pin类方法:

classmethod Pin.debug([state])

 获取或设置调试状态(开或关为真或假)。

classmethod Pin.dict([dict])

获取或查看Pin文件夹字典。

classmethod Pin.mapper([fun]

获取或设置pin mapper函数。

方法:

Pin.init(mode, pull=Pin.PULL_NONE, af=-1)

初始化PIN:

模式可以是:(Pin后面的字母全大写)

      Pin.IN-为输入配置pin;

      Pin.out_pp-配置输出的pin,带有推挽输出;

      Pin.out_od-配置输出的pin,带开漏控制;

      Pin.af_pp-为其它功能配置pin,拉动;

      Pin.af_od-为其它功能配置pin,带开漏控制;

      Pin.Analog-为模拟配置Pin。

拉动可以是以下之一:(Pin后面的字母全大写)

          Pin.PULL_NONE-无上拉或下拉电阻;

          Pin.pull-up-启用上拉电阻器;

          Pin.PULL_DOWN启用下拉电阻;

          当模式为pin.af_pp或pin.af_od时,af可以是与pin关联的备用函数之一的索引或名称。

Returns: None.

Pin.value([value])

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

      如果没有参数,则根据管脚的逻辑级别返回0或1。             

       给定值后,设置管脚的逻辑电平。值可以是任何转换                                    为布尔值的值。如果转换为真,则将管脚设置为高,否则将设置为低。

Pin.gpio()

返回与此pin关联的gpio块的基址。

Pin.name()

Get the pin name.

Pin.names()

Returns the cpu and board names for this pin.

Pin.pin()

Get the pin number.

Pin.port()

Get the pin port.

其它相关方法和参数请到这个网址查阅:http://docs.micropython.org/en/latest/library/pyb.Pin.html

原文地址:https://www.cnblogs.com/iBoundary/p/11254632.html