小助手 发表于 2020-5-21 13:49:48

ESP32 常用的模块 esp 3.1.15

## 函数
#### 1. esp.flash_read(byte_offset, buf)
函数说明:从地址为 byte_offset 的 flash 起始点读取 buf.len()个长度的数据并放入 buf 中。
```
byte_offset:flash偏移地址
buf:接收数据缓冲区,缓冲区的长度为len
```
示例:

```
import esp

buf = bytearray(100)
esp.flash_read(2097152, buf)
```
#### esp.flash_write(byte_offset, buf)

函数说明:将 buf 中所有的数据写入地址为 byte_offset 的 flash 区域。
```
byte_offset:flash偏移地址
buf:数据缓冲区,缓冲区长度为len
```
示例:

```
buf = bytearray(100)
esp.flash_write(2097152, buf)
```
#### 3. esp.flash_erase(sector_no)
函数说明:擦除flash扇区。
```
sector_no:要擦除的扇区
```
示例:

```
esp.flash_erase(512)
```
#### 4. esp.flash_size()
函数说明:返回flash的大小。
#### 5. esp.flash_user_start()
函数说明:返回用户可使用flash起始地址。
#### 6. esp.neopixel_write(pin, grb_buf, timing)
函数说明:该函数可用于控制LED灯条。
```
pin:LED灯条连接的引脚
grb_buf:rgb颜色
timing:频率
```
示例:

```
from machine import Pin
import esp

pin = Pin(2, Pin.OUT)
rgb = bytearray()#红色
while True:
esp.neopixel_write(pin, rgb, 800)
```
#### 7. esp.dht_readinto(pin, buf)
函数说明:读dht的值(温湿度传感器)。
```
pin:读取数据的引脚
buf:数据缓冲区
```
示例:
   本示例需要连接DHT11模块,点击购买DHT11
```
from machine import Pin
import time
import esp
buf = bytearray(5)

def measure(pin):
global buf
esp.dht_readinto(pin, buf)
if(buf+buf+buf+buf)&0xff!= buf:
    raise Exception("checksum error")

def dht11_humidity():
return buf

def dht11_temperature():
return buf

def dht22_humidity():
return (buf<<8 | buf)*0.1

def dht22_temperature():
t = ((buf & 0x7f) << 8 |buf)*0.1
if buf & 0x80:
    t = -t
return t

try:
while True:
    measure(Pin(2))
    print("dht11 humidity:", dht11_humidity())
    print("dht11 temperature:", dht11_temperature())
   # print("dht22 humidity:", dht22.humidity())
   # print("dht22 temperature:", dht22.temperature())
    time.sleep(0.5)

except:
print("Abnormal program!")
```
运行结果:
```
dht11 humidity:18
dht11 temperature:24
dht11 humidity:18
dht11 temperature:24
dht11 humidity:18
dht11 temperature:24
……
```
页: [1]
查看完整版本: ESP32 常用的模块 esp 3.1.15