You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派使用RC522 RFID设备时SimpleMFRC522.write方法无法正常工作的技术问询

排查RC522 RFID写入无响应的问题

我之前折腾树莓派RC522的时候也碰到过一模一样的情况,结合你的代码和错误信息,咱们从最常见的原因开始排查:

1. 先确认硬件连接与SPI配置

这是最容易踩坑的点:

  • 引脚对应是否正确:RC522的SDA(CS)、SCK、MOSI、MISO必须对应树莓派的SPI引脚(默认是SPI0的引脚:SDA=GPIO8,SCK=GPIO11,MOSI=GPIO10,MISO=GPIO9),别把SDA和I2C的SDA搞混了!另外电源一定要接3.3V,接5V大概率会烧模块。
  • SPI是否启用:打开终端输入sudo raspi-config,进入「Interface Options」→「SPI」,确认已经启用,然后重启树莓派。
  • SPI设备是否正常识别:重启后输入ls /dev/spi*,如果能看到/dev/spidev0.0和/dev/spidev0.1,说明SPI配置没问题;如果看不到,要么是硬件没接对,要么是SPI没开。

2. 检查运行权限

访问SPI设备需要root权限,普通用户运行脚本可能会因为权限不足导致无法和模块通信。试试用sudo python3 Write.py来运行你的写入脚本,看是否有变化。

3. 测试读取功能,定位问题范围

先写个简单的读取脚本测试模块是否能正常检测标签:

#!/usr/bin/env python
import RPi.GPIO as GPIO
from mfrc522 import SimpleMFRC522

reader = SimpleMFRC522()

try:
        print("Hold a tag near the reader")
        id, text = reader.read()
        print(f"ID: {id}")
        print(f"Text: {text}")
finally:
        GPIO.cleanup()
  • 如果读取也没反应,那基本可以确定是硬件连接或者SPI配置的问题;
  • 如果读取能正常获取ID和内容,那问题可能出在标签本身(比如标签是不可写入的类型,或者被锁定了),RC522只支持MIFARE Classic 1K/4K标签,确认你的标签是这个类型。

4. 排查引脚冲突

如果你的树莓派还接了其他硬件(比如I2C设备、OLED屏幕等),检查是否有引脚和SPI冲突的情况,暂时断开其他设备,只保留RC522测试。

关于错误信息的说明

你看到的KeyboardInterrupt只是因为你手动中断了卡住的程序,核心问题是程序卡在reader.write()里——它一直在等待模块检测到标签,但模块根本没反馈,所以本质是模块和树莓派之间的通信没建立起来。

先从上面的步骤一步步排查,大概率能解决问题!

内容的提问来源于stack exchange,提问作者Joramre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 10:57:35