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.x1和pyb.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