python - Raspberry Pi 3B 和 RFID RC522 - Python TypeError
问题描述
我一直在使用 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
推荐阅读
- reactjs - 在 react-router 中放置嵌套路由的位置?
- java - InvalidKeySpecException:如何从 .der 文件中提取私钥?
- scale - 监控并提醒 prometheus 指标数量异常
- excel - 具有 3 个增值税和储蓄变量的 Excel 公式,停留在第三个变量上
- php - 如何在 PHP 回显输出中正确编写 HTML 标记
- java - android 应用程序中的 SQLite 函数
- android - 从 Source 构建领域并在 Android 项目中使用 AAR
- android - AdMob 的 RewardedVideoAd 会破坏观看视频后启动的活动
- c++ - “函数”不是 C++ 类型
- php - 当 url 包含点或冒号时,PHP curl 请求会导致白页