SPI 串行外围设备接口

spi 模块可让你使用一个串行外围设备接口(SPI)总线与连接到电路板上的设备进行通信。 SPI使用带有单主机的所谓主从架构。 您需要指定三个信号的连接:

  • SCLK : 串行时钟信号 (从主机输出)
  • MOSI : 主机发出,从机接收 (从主机输出)
  • MISO : 主机接收,从机发出 (从从机输出)

函数

init(baudrate=1000000, bits=8, mode=0, sclk=pin13, mosi=pin15, miso=pin14)

使用特定 pins 上的特定参数初始化SPI通信。 请注意,为了正确的通信,两个通信设备上的参数必须相同。

baudrate 定义了通信速度。

bits 定义正在传输的字节的大小。 目前只支持 bits=8 。 但将来可能会有变化。

根据以下惯例 mode 决定了时钟极性和相位的组合,极性作为高阶位相位作为低位:

SPI Mode Polarity (CPOL) Phase (CPHA)
0 0 0
1 0 1
2 1 0
3 1 1

极性(又名CPOL)0表示时钟在空闲时为逻辑值0并在激活时变为高电平(逻辑值1); 极性1表示时钟在空闲时为逻辑值1,在激活时为低电平(逻辑值0)。相位(又名CPHA)0表示数据在时钟的上升沿被采样,1表示在下降沿被采样 (viz. https://en.wikipedia.org/wiki/Signal_edge)。

sclk, mosimiso 参数指定用于每种类型信号的引脚。

spi.read(nbytes)

最多读取 nbytes。 返回读取的内容。

spi.write(buffer)

将字节的 buffer 写入总线。

spi.write_readinto(out, in)

out 缓冲区写入总线,并将任何响应读入 in 中缓冲。 缓冲区的长度应该相同。缓冲区可以成为同一个对象。