ESP32 3.2.2 Pin

2020-07-028558
AI 快速预览详细 收起
本文介绍了ESP32 3.2.2的Pin配置与使用方法。首先,通过`Pin(id, mode, pull, value)`初始化引脚,设置引脚模式(如输入、输出或开漏)、电平状态(0或1)及上拉/下拉电阻。接着,通过`Pin.irq(trigger, handler)`配置中断处理程序,在引脚电平满足条件时调用回调函数。示例代码展示了如何读取和设置引脚电平,以及如何配置中断处理程序。

class machine.Pin(id[, mode, pull, value])

id:任意引脚号
mode:引脚模式
    Pin.IN — 输入
    Pin.OUT — 输出 
    Pin.OPEN_DRAIN — 开漏
pull:
    None — 无上拉、下拉电阻
    Pin.PULL_UP — 上拉
    Pin.PULL_DOWN — 下拉
value:引脚电平状态
    0、1

定义Pin

示例:

>>> from machine import Pin
>>> 
>>> pin = Pin(2, mode=Pin.OUT, pull=None, value=1)  #可以简单使用Pin(2, Pin.OUT)
>>> print(pin)
Pin(2)

函数

1. Pin.init(mode, pull)

函数说明:初始化引脚。

mode:
    Pin.IN — 输入
    Pin.OUT — 输出
    Pin.OPEN_DRAIN — 开漏
pull:   
    None — 无
    Pin.PULL_UP — 上拉
    Pin.PULL_DOWN — 下拉

2. Pin.value([value])

函数说明:获取或设置引脚电平状态,根据引脚的逻辑电平返回0或1。
注意:
不带参数时是读取输入电平,带参数时是设置输出电平。

value:可以是True/False,也可以是1/0。

示例:

>>> value = CS.value()
>>> print(value)
0
>>> value = CS.value(1)
>>> print(value)
None

3. Pin.irq(trigger, handler)

函数说明:配置一个中断处理程序,在引脚的电平满足条件时调用。

trigger: 
    Pin.IRQ_FALLING — 下降沿触发
        Pin.IRQ_RISING — 上升沿触发
    3 — 双边沿触发
 handler:回调函数

示例:

sw.irq(trigger=Pin.IRQ_FALLING, handler=lambda t:print("IRQ"))

下面的宏定义用于配置pin。注意:不是每个端口都有下面的全部属性。
选择pin模式

  • Pin.IN   = 0    — 输入模式
  • Pin.OUT   = 3    — 输出模式
  • Pin.OPEN_DRAIN    =7   — 开漏模式

设置上拉/下拉电阻

  • Pin.PULL_UP    = 0    — 输出高电平
  • Pin.PULL_DOWN   = 1    — 输出低电平

设置IRQ触发类型

  • Pin.IRQ_RISING   = 1    — 上升沿中断
  • Pin.IRQ_FALLING   = 2    — 下降沿中断
  • 3    — 双边沿中断

综合示例

from machine import Pin

CS = Pin(2, Pin.OUT)
CS.value()
CS.value(1)
sw = Pin(0, Pin.IN)
sw.irq(trigger=Pin.IRQ_FALLING, handler=lambda t:print("IRQ"))

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -