Skip to main content
 首页 » 编程设计

python之Raspberry Pi 3B 和 RFID RC522之Python TypeError

2025年05月04日9langtianya

我一直在摆弄 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) 

这是 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() 

我在任何地方都找不到这个问题的解决方案。已经尝试使用 Python 3 和其他库,但我仍然遇到错误。

更新:

在 MFRC522.py 文件上编辑:

def Write_MFRC522(self, addr, val): 
    spi.transfer( (addr<<1)&0x7E, val ) 

现在我得到了这个输出:

/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 

请您参考如下方法:

问题来自https://github.com/lthiery/SPI-Py图书馆。 如果你回滚到 8cce26b9ee6e69eb041e9d5665944b88688fca68 它应该可以工作

确保在回滚后再次运行设置。

git clone https://github.com/lthiery/SPI-Py.git 
git checkout 8cce26b9ee6e69eb041e9d5665944b88688fca68 
sudo python setup.py install