Raspberry Pi 3B和RFID RC522-Python TypeError

Dio*_*dre 1 python rfid typeerror python-2.7 raspberry-pi

我一直在弄乱Raspberry Pi和RFID,发现了本教程:

https://pimylifeup.com/raspberry-pi-rfid-rc522/

安装一切正常,但是当我运行脚本时出现错误。

这就是问题:

pi@raspberrypi:~/MFRC522-python $ sudo python Write.py
/home/pi/MFRC522-python/MFRC522.py:115: RuntimeWarning: This channel is already in use, continuing anyway.  Use GPIO.setwarnings(False) to disable warnings.
  GPIO.setup(25, GPIO.OUT)
Traceback (most recent call last):
  File "Write.py", line 6, in <module>
    reader = SimpleMFRC522.SimpleMFRC522()
  File "/home/pi/MFRC522-python/SimpleMFRC522.py", line 14, in __init__
    self.READER = MFRC522.MFRC522()
  File "/home/pi/MFRC522-python/MFRC522.py", line 117, in __init__
    self.MFRC522_Init()
  File "/home/pi/MFRC522-python/MFRC522.py", line 390, in MFRC522_Init
    self.MFRC522_Reset();
  File "/home/pi/MFRC522-python/MFRC522.py", line 120, in MFRC522_Reset
    self.Write_MFRC522(self.CommandReg, self.PCD_RESETPHASE)
  File "/home/pi/MFRC522-python/MFRC522.py", line 123, in Write_MFRC522
    spi.transfer(((addr<<1)&0x7E,val))
TypeError: function takes exactly 2 arguments (1 given)
Run Code Online (Sandbox Code Playgroud)

这是Write.py文件:

#!/usr/bin/env python

import RPi.GPIO as GPIO
import SimpleMFRC522

reader = SimpleMFRC522.SimpleMFRC522()

try:
        text = raw_input('New data:')
        print("Now place your tag to write")
        reader.write(text)
        print("Written")
finally:
        GPIO.cleanup()
Run Code Online (Sandbox Code Playgroud)

我在任何地方都找不到解决此问题的方法。已经尝试使用Python 3和其他库,但是仍然出现错误。

更新:

在MFRC522.py文件上进行了编辑:

def Write_MFRC522(self, addr, val):
    spi.transfer( (addr<<1)&0x7E, val )
Run Code Online (Sandbox Code Playgroud)

现在我得到以下输出:

/home/pi/MFRC522-python/MFRC522.py:115: RuntimeWarning: This channel is already in use, continuing anyway.  Use GPIO.setwarnings(False) to disable warnings.
  GPIO.setup(25, GPIO.OUT)
First argument must be a valid dictionary.: Success
Aborted
Run Code Online (Sandbox Code Playgroud)

小智 10

问题来自https://github.com/lthiery/SPI-Py库。如果回滚到8cce26b9ee6e69eb041e9d5665944b88688fca68

确保回滚后再次运行安装程序。

git clone https://github.com/lthiery/SPI-Py.git
git checkout 8cce26b9ee6e69eb041e9d5665944b88688fca68
sudo python setup.py install
Run Code Online (Sandbox Code Playgroud)