+++ /dev/null
-import spidev
-import time
-
-class SPI:
- MSB = 0
- LSB = 1
- CPHA = 1
- CPOL = 2
-
- baudrate = 100000
- mode = 0
- bits = 8
-
- def __init__(self, portid):
- self._port = portid
- self._spi = spidev.SpiDev()
-
- def init(self, baudrate=100000, polarity=0, phase=0, bits=8,
- firstbit=MSB, sck=None, mosi=None, miso=None):
- mode = 0
- if polarity:
- mode |= CPOL
- if phase:
- mode |= CPHA
-
- self.clock_pin = sck
- self.mosi_pin = mosi
- self.miso_pin = miso
- self.baudrate = baudrate
- self.mode = mode
- self.bits = bits
-
- def write(self, buf):
- if not buf:
- return
- try:
-
- self._spi.open(self._port, 0)
- self._spi.no_cs = True
- self._spi.max_speed_hz = self.baudrate
- self._spi.mode = self.mode
- self._spi.bits_per_word = self.bits
- self._spi.writebytes([x for x in buf])
- self._spi.close()
- except FileNotFoundError as not_found:
- print("Could not open SPI device - check if SPI is enabled in kernel!")
- raise