ESP32 3.2.2 Pin
## 类### 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()
函数说明:获取或设置引脚电平状态,根据引脚的逻辑电平返回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"))
```
页:
[1]