SPI

SPI模块:你可以使用串行外设接口(SPI)总线与连接到板子的设备通讯。

SPI使用所谓的主从架构与单个主机。您将需要指定三个信号的连接:

  • SCLK:串行时钟(从主机输出)。
  • MOSI:主机输出,从机输入(从主机输出)。
  • MISO:主机输入,从机输出(从从机输出)。

函数

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

通过指定参数初始化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表示后沿。

参考:https://en.wikipedia.org/wiki/Signal_edge

spi.read(nbytes)

读取最多nbytes字节,返回读取的内容。

spi.write(buffer)

将缓冲区中的字节写入总线。

spi.write_readinto(out,in)

将输出缓冲区写入总线,并将读取的内容写入接受缓冲区。缓冲区的长度应该相同。

缓冲区可以是同一个对象。