查看: 124|回复: 0

[资料] TPYBoard v102的GPIO使用用法

[复制链接]

48

主题

0

好友

662

积分

举人

Rank: 4

  • TA的每日心情
    开心
    2016-9-7 16:50
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2017-9-23 16:12:00 |显示全部楼层
      引脚介绍

      引脚是控制I/O引脚的基本对象。它可以设置引脚输入、输出等的方式或者获取和设置数字逻辑电平的。对于模拟控制引脚,请参见ADC类。TPYBoard一共有68根针脚,26个3.3V,VIN接口;30个通用IO口,包括2个SPI接口,2个CAN接口,2个I2C接口,5个USART接口,14个12bitADC接口,2个DAC引脚,并且比官方PYBoard增加了SWD接口,更加完美。

                              v102.jpg
                   
      TPYboard所有的引脚都定义为pyb.Pin.board.Name:


      y1=pyb.Pin.board.Y1

      in=pyb.Pin(pyb.Pin.board.Y1,pyb.Pin.IN)

      也可以这样使用

      y1=pyb.Pin('Y1',pyb.Pin.OUT_PP)


      定义GPIO:pyb.Pin(id)

      LED1=Pin(Pin.cpu.A13,Pin.OUT_PP)

      sw=Pin("X17")

      sw=Pin('X17',Pin.IN,Pin.PULL_UP)

      sw=Pin(Pin(Pin.cpu.B3,Pin.IN,Pin.PULL_UP)


      TPYBoard引脚的CPU引脚可用作pyb.cpu.Name。对于CPU引脚,在TPYBoard上,pyb.Pin.board.X1并且pyb.Pin.cpu.A0是相同的引脚。


      同时也可以自己定义引脚名称


      MyMapperDict={'LeftMotorDir':pyb.Pin.cpu.C12}

      pyb.Pin.dict(MyMapperDict)

      g=pyb.Pin("LeftMotorDir",pyb.Pin.OUT_OD)


      可以映射GPIO


      pin=pyb.Pin("LeftMotorDir")


      甚至可以通过函数添加自己的映射功能


      defMyMapper(pin_name):

      ifpin_name=="LeftMotorDir":

      returnpyb.Pin.cpu.A0

      pyb.Pin.mapper(MyMapper)


      基本用法

      初始化引脚in.init(mode,pull=Pin.PULL_NONE,af=-1)


      Mode(引脚模式)可以是以下几种方式:

              Pin.IN-输入

              Pin.OUT_PP-推挽输出(push-pull)

              Pin.OUT_OD-开漏输出(open-drain)

              Pin.AF_PP-第二功能,推挽模式

              Pin.AF_OD-第二功能,开漏模式

              Pin.ANALOG-模拟功能


      pull

      Pin.PULL_NONE-无上拉下拉

      Pin.PULL_UP-上拉

      Pin.PULL_DOWN-下拉

      当模式为Pin.AF_PP或Pin.AF_OD,AF可以是与引脚相关的备用功能之一的索引或名称


      Pin.value([value])

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

      没有参数,根据引脚的逻辑电平返回0或1。

      设定value值,value如果转换为True,则引脚设置为高电平,否则设置为低电平。

      Pin.af_list()

      返回引脚可用的备用函数数组

      Pin.af_list(pyb.Pin.board.X1)

      Pin.af_list(LED)


      Pin.name()

      获取引脚名称返回当前配置的引脚模式。返回的整数将匹配init函数的mode参数的允许常量之一in.mode()


      获取/设置debug状态:Pin.debug(state)

      Pin.debug(True)


      Pin.dict(dict)

      获取/设置GPIO映射

      MyMapperDict={'LeftMotorDir':pyb.Pin.cpu.C12}

      pyb.Pin.dict(MyMapperDict)


      Pin.mapper(func)

      获取/设置Pin映射


      Pin.__str__()

      返回描述针对象的字符串


      Pin.af()

      返回当前配置的引脚交替功能。返回的整数将匹配init函数的af参数的允许常量之一


      Pin.gpio()

      返回与该引脚相关联的GPIO块的基址


      Pin.mode()

      返回当前配置的引脚模式。返回的整数将匹配init函数的mode参数的允许常量之一


      Pin.names()

      返回此引脚的cpu和板名称


      Pin.pin()

      获取引脚号


      Pin.port()

      获取pin端口


      Pin.pull()

      返回当前配置的引脚拉。返回的整数将匹配init函数的拉参数的允许常量之一。


      常量

      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

      使能引脚上的上拉电阻



    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /5 下一条

    手机版|爱板网 |网站地图  

    GMT+8, 2017-10-23 12:17 , Processed in 0.121977 second(s), 11 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部