From: Melissa LeBlanc-Williams Date: Fri, 4 Jun 2021 21:53:20 +0000 (-0700) Subject: Merge pull request #483 from lesamouraipourpre/rp2040-i2c X-Git-Tag: 6.10.1 X-Git-Url: https://git.ayoreis.com/hackapet/Adafruit_Blinka.git/commitdiff_plain/dadec9cca754a65269cf286649b282bc1c0c9252?hp=78bfa5749837c033839d087a5aab7932960ea6f8 Merge pull request #483 from lesamouraipourpre/rp2040-i2c Fix I2C writeto_then_readfrom when in_start > 0 in RP2040 --- diff --git a/.gitignore b/.gitignore index 1be1c4b..e7e0f2d 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ bundles .eggs dist **/*.egg-info +.vscode diff --git a/src/adafruit_blinka/microcontroller/rp2040/i2c.py b/src/adafruit_blinka/microcontroller/rp2040/i2c.py index 785769d..2a6c6a0 100644 --- a/src/adafruit_blinka/microcontroller/rp2040/i2c.py +++ b/src/adafruit_blinka/microcontroller/rp2040/i2c.py @@ -55,9 +55,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:]