X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/blobdiff_plain/4320a101dd8a5f27dc528101d9a9f22c72005355..3b01699d1e09bc494656bae583d1f70b35d8975e:/src/adafruit_blinka/microcontroller/rp2040/i2c.py diff --git a/src/adafruit_blinka/microcontroller/rp2040/i2c.py b/src/adafruit_blinka/microcontroller/rp2040/i2c.py index 785769d..8daf249 100644 --- a/src/adafruit_blinka/microcontroller/rp2040/i2c.py +++ b/src/adafruit_blinka/microcontroller/rp2040/i2c.py @@ -1,3 +1,6 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT """I2C Class for RP2040""" from machine import I2C as _I2C from machine import Pin @@ -46,7 +49,7 @@ class I2C: out_end=None, in_start=0, in_end=None, - stop=False + stop=False, ): """Write data from buffer_out to an address and then read data from an address and into buffer_in @@ -55,9 +58,8 @@ class I2C: self.writeto(address, buffer_out[out_start:out_end], stop=stop) else: self.writeto(address, buffer_out[out_start:], stop=stop) - read_buffer = buffer_in + + if not in_end: + in_end = len(buffer_in) + read_buffer = memoryview(buffer_in)[in_start:in_end] self.readfrom_into(address, read_buffer, stop=stop) - if in_end: - buffer_in[in_start:in_end] = read_buffer[in_start:in_end] - else: - buffer_in[in_start:] = read_buffer[in_start:]