From 3da8e1652c3926c505e411911d7c3e19d61317f8 Mon Sep 17 00:00:00 2001 From: Basil Huber Date: Sun, 5 Jan 2020 21:58:13 +0100 Subject: [PATCH] PN532_SPI._wait_ready: fixed command overwriting Use separate buffer for sending and receiving form SPI This fixes #28 --- adafruit_pn532/spi.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/adafruit_pn532/spi.py b/adafruit_pn532/spi.py index 4cfaf53..865cb78 100644 --- a/adafruit_pn532/spi.py +++ b/adafruit_pn532/spi.py @@ -78,14 +78,14 @@ def _wakeup(self): def _wait_ready(self, timeout=1): """Poll PN532 if status byte is ready, up to `timeout` seconds""" - status = bytearray([reverse_bit(_SPI_STATREAD), 0]) - + status_cmd = bytearray([reverse_bit(_SPI_STATREAD), 0x00]) + status_response = bytearray([0x00, 0x00]) timestamp = time.monotonic() with self._spi as spi: while (time.monotonic() - timestamp) < timeout: time.sleep(0.02) # required - spi.write_readinto(status, status) #pylint: disable=no-member - if reverse_bit(status[1]) == 0x01: # LSB data is read in MSB + spi.write_readinto(status_cmd, status_response) #pylint: disable=no-member + if reverse_bit(status_response[1]) == 0x01: # LSB data is read in MSB return True # Not busy anymore! else: time.sleep(0.01) # pause a bit till we ask again