物联网AI MicroPython学习之语法 SPI串行外设通信

学物联网,来万物简单IoT物联网!!在这里插入图片描述

SPI 介绍

  • 模块功能:
    SPI串行外设驱动

接口说明

SPI - 构建SPI对象

  • 函数原型:SPI(id, baudrate,polarity, phase,sck, mosi, miso)
  • 参数说明:
参数 类型 必选参数? 说明
id int Y spi通道,可为1或2
baudrate int N spi 波特率
polarity int N spi极性
polarity是指 SCK 空闲时候的状态
phase enum N spi相位
phase=0 表示SCK在第1个边沿开始取样
phase=1 表示SCK在第2个边沿开始取样
sck object Y sck引脚对象
mosi object Y mosi引脚对象
miso object Y miso引脚对象
  • 返回值:
    构建的SPI对象。

SoftSPI - 构建软SPI对象

  • 函数原型:SoftSPI(baudrate,polarity, phase,sck, mosi, miso)
  • 参数说明:
参数 类型 必选参数? 说明
baudrate int N spi 波特率
polarity int N spi极性
polarity是指 SCK 空闲时候的状态
phase enum N spi相位
phase=0 表示SCK在第1个边沿开始取样
phase=1 表示SCK在第2个边沿开始取样
sck object Y sck引脚对象
mosi object Y mosi引脚对象
miso object Y miso引脚对象
  • 返回值:
    构建的软SPI对象。

read - 从SPI接收指定字节数的数据

  • 函数原型:read(size)
  • 参数说明:
参数 类型 必选参数? 说明
size int Y 读取指定字节长度数据
  • 返回值:
    buffer - 读取的数据区,长度为参数size

write - 从SPI发送指定字节数的数据

  • 函数原型:write(buffer)
  • 参数说明:
参数 类型 必选参数? 说明
buffer array[] Y 发送数据的缓冲区,期待发送的字节数为buffer的长度
  • 返回值:

readinto - 从SPI接收指定字节数的数据,并放在缓冲区

  • 函数原型:readinto(buffer)
  • 参数说明:
参数 类型 必选参数? 说明
buffer array[] Y 读取数据并存放在缓冲区
  • 返回值:
    buffer - 读取的数据区,长度为参数size

write_readinto - SPI先发送数据再接收数据

  • 函数原型:write_readinto(sendbuf, recvbuf)
  • 参数说明:
参数 类型 必选参数? 说明
sendbuf array[] Y 发送数据的存储数组,期待发送的字节数为sendbuf的长度。
recvbuf array[] Y 接收数据的存储数组,期待接收的字节数为recvbuf的长度。
  • 返回值:
  • 案例代码
from machine import Pin, SoftSPI, SPI

# 软SPI创建对象
spi = SoftSPI(baudrate=100000, polarity=1, phase=0, sck=Pin(0), mosi=Pin(2), miso=Pin(4))
# 硬件SPI创建对象
spi = SPI(1, 10000000, sck=Pin(14), mosi=Pin(13), miso=Pin(12))

buf = bytearray(10)     # 建立缓冲区
buf = spi.read(10)      # 读取10字节数据

spi.readinto(buf)       # 读取数据并存放在缓冲区 (这里读取10个字节)

spi.write(b'12345')     # 在MOSI引脚上写5字节数据

sendbuf = bytearray(40)      # 建立缓冲区
recvbuf = bytearray(40)      # 建立缓冲区
spi.write_readinto(sendbuf, recvbuf) # 先发送再接收数据

你可能感兴趣的:(ETTPython组件库,物联网,学习,python,人工智能,嵌入式硬件)