class SPI – a master-driven serial protocol

SPI is a serial protocol that is driven by a master. At the physical level there are 3 lines: SCK, MOSI, MISO.

Additional methods for SPI:

data = spi.send_recv(b'1234')        # send 4 bytes and receive 4 bytes
buf = bytearray(4)
spi.send_recv(b'1234', buf)          # send 4 bytes and receive 4 into buf
spi.send_recv(buf, buf)              # send/recv 4 bytes from/to buf

Constructors

Methods

spi.deinit()

Turn off the SPI bus.

spi.recv(recv, *, timeout=5000)

Receive data on the bus:

  • recv can be an integer, which is the number of bytes to receive, or a mutable buffer, which will be filled with received bytes.
  • timeout is the timeout in milliseconds to wait for the receive.

Return value: if recv is an integer then a new buffer of the bytes received, otherwise the same buffer that was passed in to recv.

spi.send(send, *, timeout=5000)

Send data on the bus:

  • send is the data to send (an integer to send, or a buffer object).
  • timeout is the timeout in milliseconds to wait for the send.

Return value: None.

spi.send_recv(send, recv=None, *, timeout=5000)

Send and receive data on the bus at the same time:

  • send is the data to send (an integer to send, or a buffer object).
  • recv is a mutable buffer which will be filled with received bytes. It can be the same as send, or omitted. If omitted, a new buffer will be created.
  • timeout is the timeout in milliseconds to wait for the receive.

Return value: the buffer with the received bytes.

Constants