]> Repositories - Adafruit_Blinka-hackapet.git/commitdiff
Merge pull request #483 from lesamouraipourpre/rp2040-i2c 6.10.1
authorMelissa LeBlanc-Williams <melissa@adafruit.com>
Fri, 4 Jun 2021 21:53:20 +0000 (14:53 -0700)
committerGitHub <noreply@github.com>
Fri, 4 Jun 2021 21:53:20 +0000 (14:53 -0700)
Fix I2C writeto_then_readfrom when in_start > 0 in RP2040

.gitignore
src/adafruit_blinka/microcontroller/rp2040/i2c.py

index 1be1c4b78d3e04e46ae38159e8e9a8d6579885ee..e7e0f2da7ea4e97c0d3ea706787db572cfbbd272 100644 (file)
@@ -9,3 +9,4 @@ bundles
 .eggs
 dist
 **/*.egg-info
+.vscode
index 785769d7e0035d41a82ba29f40c07e50f697ab81..2a6c6a0dd277057aa68395bef5f1a34f5be293c9 100644 (file)
@@ -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:]