zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Oracle存储过程(Stored Procedure)使用自定义类实体参数
    RTF格式富文本图片文本导出到Excel
    将EXCEL表格文字图片信息转成RTF格式写入数据库BLOB字段
    C# 阿拉伯数字转换为中文数字/中文数字转换为阿拉伯数字
    JavaScript操作select下拉框
    JavaScript操作浏览器一直往下滚动
    Microsoft Office 2003 Web Components 自动计数/自动求和
    SQLite递归
    WPF获取验证码倒计时
    System.UnauthorizedAccessException: 对路径“***”的访问被拒绝。
  • 原文地址:https://www.cnblogs.com/iBoundary/p/11254632.html
Copyright © 2011-2022 走看看