X-Git-Url: https://git.ayoreis.com/hackapet/Adafruit_Blinka.git/blobdiff_plain/a126c589b809c7a48fa39c585e1f66e3b79eb8bc..1df0d5218a4ad92c680b33ac200a2024016322f6:/src/busio.py diff --git a/src/busio.py b/src/busio.py index 302eb88..069e9be 100755 --- a/src/busio.py +++ b/src/busio.py @@ -53,6 +53,8 @@ class I2C(Lockable): return self._i2c.readfrom_into(address, buffer, stop) def writeto(self, address, buffer, start=0, end=None, stop=True): + if isinstance(buffer, str): + buffer = bytes([ord(x) for x in buffer]) if start is not 0 or end is not None: if end is None: return self._i2c.writeto(address, memoryview(buffer)[start:], stop) @@ -70,7 +72,9 @@ class SPI(Lockable): from machine import SPI as _SPI from microcontroller.pin import spiPorts for portId, portSck, portMosi, portMiso in spiPorts: - if clock == portSck and MOSI == portMosi and MISO == portMiso: + if ((clock == portSck) and # Clock is required! + (MOSI == portMosi or MOSI == None) and # But can do with just output + (MISO == portMiso or MISO == None)): # Or just input self._spi = _SPI(portId) self._pins = (portSck, portMosi, portMiso) break @@ -106,14 +110,14 @@ class SPI(Lockable): self._spi = None self._pinIds = None - def write(self, buf): - return self._spi.write(buf) + def write(self, buf, start=0, end=None): + return self._spi.write(buf, start, end) - def readinto(self, buf): - return self._spi.readinto(buf) + def readinto(self, buf, start=0, end=None, write_value=0): + return self._spi.readinto(buf, start, end) - def write_readinto(self, buffer_out, buffer_in): - return self._spi.write_readinto(buffer_out, buffer_in) + def write_readinto(self, buffer_out, buffer_in, out_start=0, out_end=None, in_start=0, in_end=None): + return self._spi.write_readinto(buffer_out, buffer_in, out_start, out_end, in_start, in_end) class UART(Lockable):