class Pin – 控制I/O管脚

Pin是控制I/O引脚的基本对象. 拥有设置引脚的模式(input, output 等) 的方法, 设置引脚数字逻辑电平的方法.

关于引脚的模拟控制, 请参照ADC 类.

Usage Model

引脚名称

引脚名称有两种

  • 板载名称 board name
  • CPU管脚名称 cpu name
  • 引脚名字(简写)

BoardName

板子上的所有的引脚都被预设为

pyb.Pin.board.Name

例如

p0_pin = pyb.Pin.board.P0

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

CpuName

CPU pins 是开发板上的Pin对应的CPU管脚.

可以通过pyb.cpu.Name 的方式获取.

例如

pyb.Pin.board.P0pyb.Pin.cpu.B15 实际上是同一个引脚.

PinName

还有更简便的方法, 是直接使用pin的Name进行初始化.

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

自定义管脚映射

自定义管脚映射, 有两种方式.

  • 管脚映射字典dict
  • 管脚映射函数mapper

Dict - 字典

利用下面的方法, 你可以定义自己的管脚映射.

MyMapperDict = { 'LeftMotorDir' : pyb.Pin.cpu.B15 }
# Pin的字典映射
pyb.Pin.dict(MyMapperDict)
# 直接使用自己定义的名字, 调用引脚
g = pyb.Pin("LeftMotorDir", pyb.Pin.OUT_OD)

还可以查询映射.

pin = pyb.Pin("LeftMotorDir")

Mapper - 映射函数

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

Users can also add their own mapping function:

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

pyb.Pin.mapper(MyMapper)
# LeftMotorDir 会被传入 MyMapper函数
pyb.Pin("LeftMotorDir",pyb.Pin.OUT_PP)

Debug

你可以设定Debug

pyb.Pin.debug(True) 来获取一些关于对象与引脚映射的Debug信息.

上拉/下拉

当拉模式(上拉 / 下拉)开启的时候, pin会接一个40K欧姆的电阻, 并将其分别拉到3V3或者GND.

除了Y5引脚接的是11K欧姆的电阻.

所有的Pin对象, 经过Pin Mapper(映射函数) 变成GPIO引脚.

Constructors

class pyb.Pin(id)

根据id创建一个Pin对象.

如果创建之后, 想对引脚做更多的设置, 需要重新初始化Pin

pin.init()

Class methods

Pin.af_list()

返回这个引脚所有有效的复用功能.

Pin.debug([state])

获取/设置Debug状态

如果不传入参数, 即为获取

state有效取值

  • True 开启Debug
  • False 关闭Debug

Pin.dict([dict])

获取/设置映射字典

如果不传入参数, 即为获取

MyMapperDict = { 'LeftMotorDir' : pyb.Pin.cpu.B15 }
# Pin的字典映射
pyb.Pin.dict(MyMapperDict)
# 直接使用自己定义的名字, 调用引脚
g = pyb.Pin("LeftMotorDir", pyb.Pin.OUT_OD)

Pin.mapper([fun])

获取/设置映射函数

如果不传入参数, 即为获取

Methods

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

初始化/重置引脚

@Param mode 模式

有效值

  • Pin.IN 配置引脚为输入状态
  • Pin.OUT_PP 配置引脚为输出模式, push-pull 控制
  • Pin.OUT_OD 配置引脚为输出模式, open-drain控制
  • Pin.AF_PP 配置引脚为复用功能, pull-pull控制
  • Pin.AF_OD 配置引脚为复用功能, open-drain控制
  • Pin.ANALOG 配置引脚为模拟引脚

@Param pull

  • Pin.PULL_NONE 没有上拉/下拉电阻
  • Pin.PULL_UP 配置上拉电阻
  • Pin.PULL_DOWN 配置下拉电阻

@Param af

当引脚模式为AF_PP 或者AF_OD的时候, af的值可以是该引脚的复用功能编号

其他模式下默认为-1

pin.value([value])

设置/获取引脚的逻辑电平

没有参数时候为获取电平信号, 返回 0 / 1

有参数的时候, 首先将其转换为布尔值.

pin.__str__()

返回这个引脚的介绍信息(string)

pin.af()

返回这个引脚当前配置的复用功能.

返回整数类型, 可以映射为init函数中的af的参数

pin.gpio()

返回Pin与其关联的GPIO块的基址信息.

Returns the base address of the GPIO block associated with this pin.

pin.mode()

返回当前引脚的模式.

返回整数, 映射到init函数中Mode的序号

pin.name()

返回引脚的名称

pin.names()

返回引脚的cpu名称和板载名称.

pin.pin()

获取pin编号

pin.port()

获取pin端口

pin.pull()

Returns the currently configured pull of the pin. The integer returned will match one of the allowed constants for the pull argument to the init function.

Constants

  • Pin.IN 配置引脚为输入状态
  • Pin.OUT_PP 配置引脚为输出模式, push-pull 控制
  • Pin.OUT_OD 配置引脚为输出模式, open-drain控制
  • Pin.AF_PP 配置引脚为复用功能, pull-pull控制
  • Pin.AF_OD 配置引脚为复用功能, open-drain控制
  • Pin.ANALOG 配置引脚为模拟引脚
  • Pin.PULL_NONE 没有上拉/下拉电阻

  • Pin.PULL_UP 配置上拉电阻

  • Pin.PULL_DOWN 配置下拉电阻

TODO

各种引脚模式的详细介绍 , 什么情况下用什么模式?

上拉下拉概念及原因

复用的概念介绍 af OpenMV上的AF资源与序号, 原文档中没有给出详细解释

Pin端口的概念(port)

Copyright 杭州云江科技有限公司 2017 all right reserved,powered by Gitbook该文件修订时间: 2018-04-02 09:53:12

results matching ""

    No results matching ""