你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【MicroPython学习】GPIO控制

[复制链接]
zhdzhd 发布时间:2018-7-31 21:34
本帖最后由 zhdzhd-174422 于 2018-7-31 21:41 编辑

所有的GPIO都在pyb.Pin.board.Name中预先定义了:

x1_pin = pyb.Pin.board.X1
g = pyb.Pin(pyb.Pin.board.X1, pyb.Pin.IN)

也可以这样使用
g = pyb.Pin('X1', pyb.Pin.OUT_PP)

也可以自己定义GPIO名称
MyMapperDict = { 'LeftMotorDir' : pyb.Pin.cpu.C12 }
pyb.Pin.dict(MyMapperDict)
g = pyb.Pin("LeftMotorDir", pyb.Pin.OUT_OD)

可以映射GPIO
pin = pyb.Pin("LeftMotorDir")

甚至可以通过函数进行映射
def MyMapper(pin_name):
   if pin_name == "LeftMotorDir":
       return pyb.Pin.cpu.A0

pyb.Pin.mapper(MyMapper)


基本用法

  • 定义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)

  • 返回GPIO的第二功能列表in.af_list()
    Pin.af_list(pyb.Pin.board.X1)
    Pin.af_list(LED)

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

  • 获取/设置GPIO映射字典:Pin.dict(dict)
    MyMapperDict = { 'LeftMotorDir' : pyb.Pin.cpu.C12 }
    pyb.Pin.dict(MyMapperDict)

  • 获取/设置Pin映射in.mapper(func)

  • 初始化: Pin.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 - 下拉
    • af,当mode是Pin.AF_PP或Pin.AF_OD时,选择第二功能索引或名称


  • 获取/设置GPIO逻辑电平
    Pin.value(sw)  # sw and LED has predefine
    Pin.value(LED, 1)
    Pin.value(LED, 0)
    LED.value(1)
    LED.value(0)

  • 当前GPIO第二功能索引:pin.af()
  • 当前GPIO关联基本地址:pin.gpio()
  • GPIO的模式:pin.mode()
  • GPIO的名称:pin.name()
  • GPIO和预定义的名称:pin.names()
  • 引脚序号:pin.pin()
  • 端口序号:pin.port()
  • 上拉状态:pin.pull()


例程
  • from pyb import Pin
  • p_out = Pin('X1', Pin.OUT_PP)
  • p_out.high()
  • p_out.low()
  • p_in = Pin('X2', Pin.IN, Pin.PULL_UP)
  • p_in.value() # get value, 0 or 1
  • LED = Pin(Pin.cpu.A14, Pin.OUT_PP)
  • LED.value(not LED.value())


-----转自:电子工程世界
收藏 评论0 发布时间:2018-7-31 21:34

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版