arduino rc522模块使用

article/2025/8/22 23:26:08

rfid IC卡

先了解IC卡一些前置知识。

首先我们会有一张ic卡(M1类型IC卡,一般买到的都是1K存储空间),在rc522代码中会出现这个,就是对IC卡进行检查PICC_TYPE_MIFARE_4KPICC_TYPE_MIFARE_1K就是一种卡片类型不同大小

    //检查兼容性if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI && piccType != MFRC522::PICC_TYPE_MIFARE_1K && piccType != MFRC522::PICC_TYPE_MIFARE_4K){Serial.println("无效卡!");return;}

RC522模块就是阅读器天线以及处理器和寄存器,这些不是写代码关注的重点。

在使用arduinoIDE+esp32 的MFrc522库中,尽管他没有写支持esp32,但是在MFrc522 V2库中SPI的连线可以作用在MFrc522中

SPI的连线是根据ESP32引脚功能来设置的,但是有文章说可以通过SPI来自己自定义设置(库作者没有提供定义的功能),读者可以自行设置

IC卡内部空间

在这里插入图片描述

一个ic的存储结构就是上面的样子,而我们在读取ic卡会选取一个扇区,这个扇区中设置的密钥可以用于ic卡的验证,而ic卡总共有16个,这样可以为一个IC卡提供多个功能,实现一卡多用

同时每个扇区还有其他存储尚未使用,这些存储区可以为IC卡功能分类提供有利的标识,以及权限的标识

读取扇区代码分析

1.读取指定扇区的内容

status = (MFRC522::StatusCode)mfrc522.MIFARE_Read(blockAddr, buffer, &size);

三个参数:1.blockAddr,要读取扇区号
2.buffer,自行设置缓冲区(将IC卡扇区中读取的数据放入的地方)
3.size,读取数据大小

返回值:status,操作状态码,判断条件可以看内容3

2.将内容写入扇区

status = mfrc522.MIFARE_Write(blockAddr, buffer, 16);

三个参数:1.blockAddr,要写入扇区号
2.buffer,自行设置缓冲区
3.size,读取数据大小
返回值:status,操作状态码,判断条件可以看内容3

3.判断写入或者读取操作是否成功

if (status != MFRC522::STATUS_OK){Serial.print("写入失败:");Serial.println(mfrc522.GetStatusCodeName(status)); //打印错误码return;} 

4.用密钥进行卡片验证

    status= (MFRC522::StatusCode)mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, blockAddr, &keyA, &(mfrc522.uid)); 

三个参数:1.PICC_CMD_MF_AUTH_KEY_A,使用密钥A位置进行验证
2.blockAddr,扇区号
3.keyA,密钥A
4.mfrc522.uid,uid号UID是用户身份证明(User Identification)的缩写,是每一个卡片的唯一有效识别编码。

返回值:status,操作状态码

卡片密钥(可以自行搜索):

//准备卡片密钥A,B
MFRC522::MIFARE_Key keyA;
MFRC522::MIFARE_Key keyB;byte KEYA[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; //密钥A
byte KEYB[6] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; //密钥B 

如果这个扇区没有经过密钥的解锁是没办法读取的,有兴趣的可以了解一下IC卡的破译(比如说水卡,一些门禁的验证)。

大致上面的函数就能完成我们的基本的需求了,一些功能的完成,使用这三个函数就足够了

整体代码以及其他内容,可以参考这个作者的其他文章,他的内容比较详细一点

会飞的豹豹豹 https://www.bilibili.com/read/cv18457914?spm_id_from=…0.0
出处:bilibili


http://chatgpt.dhexx.cn/article/Oup5IE0h.shtml

相关文章

RC522线圈设计及相关参数的选定

RC522线圈设计及相关参数的选定 LC低通滤波电路(蓝色区域)NFC天线电路(绿色区域)匹配电路(黄色区域)品质因子阻抗匹配 接收电路(浅黄色区域)TGND的疑问 LC低通滤波电路(蓝色区域) TX1、TX2为载波发送引脚。…

基础篇010.2 STM32驱动RC522 RFID模块之二:STM32硬件SPI驱动RC522

目录 1. 实验硬件及原理图 1.1 RFID硬件 1.2 硬件原理图 2. 单片机与RFID硬件模块分析 3. 利用STM32CubeMX创建MDK工程 3.1 STM32CubeMX工程创建 3.2 配置调试方式 3.3 配置时钟电路 3.4 配置时钟 3.5 配置GPIO 3.6 配置SPI 3.7 配置串口 3.8 项目配置 4. MDK工程…

STM32—驱动RFID-RC522模块

文章目录 一.S50(M1)卡介绍1.S50(M1)卡基础知识2.内部信息3.存取控制4.数据块的存取控制5.控制块的存取控6.工作原理7.M1与读卡器的通信 二.RC522工程代码详解1.RC522与M1通信2.STM32对RC522寄存器的操作3.STM32对RC522的基础通信…

STM32F103+RFID-RC522模块 实现简单读卡写卡demo

目录 前言特别声明:代码下载:功能介绍: 接线STM32STM32F1开发指南(精英版)-库函数版本_V1.2STM32中文参考手册 RFID-RC522RFID射频模块电路原理图 使用图效果图测试程序0 RC522_Handle()最终效果一、先用手机软件NFC Writer读取空卡看看内容1、打开软件和…

使用stm32驱动RC522读取IC卡

stm32驱动RC522 RC522与PN532简介关于STM32驱动方式接线说明程序烧录查看卡号总结 原文链接:https://www.yourcee.com/newsinfo/2924379.html 点击图片购买 RC522与PN532简介 在写这篇文章之前有写过一篇有关于PN532的文章,RC522与PN532在使用上都可以用…

RC522(RFID模块)实践总结

此次使用RC522模块和S50卡实现近场通讯功能(开发板与RC522通讯方式为硬件SPI),就实践过程中的一些知识点进行总结: RC522模块和M1卡要点介绍;驱动代码;出现问题及解决方法; 1. RC522模块和M1卡…

RC522应用总结

公司需要做刷卡模块,因此选了RC522做demo程序。下面就RC522知识做简要的总结。 本人使用stm32的硬件spi接口搭建工程,相关的配置如下: spi配置: 引脚配置 SDA -------PA4 SCLK ----PB13 MOSI -------PB15 MISO ------PB14 IRQ —没…

RC522 - NFC刷卡模块

RC522 - NFC刷卡模块 芯片介绍/引脚介绍 MF RC522 是应用于 13.56MHz 非接触式通信中高集成度读写卡系列芯片中的一员。是 NXP 公司针对“三表”应用推出的一款低电压、低成本、体积小的非接触式读写卡芯片,是智能仪表和便携式手持设备研发的较好选择。 非接触式…

STM32--RFID无线射频技术(RC522刷卡模块)

文章目录 1、RFID的概念2、RFID的工作原理(1)RFID中间件的概念(2)RFID中间件具有以下特点:(3)RFID中间件的意义: 3、RFID频率划分(1)RFID低频特性(2)RFID高频…

STM32——NFC门禁模块(RC522)

文章目录 1. 前言(包括一些个人理解)2. RC522门禁工作过程3. CubeMx配置3.1 SPI通讯的配置3.2 SDA和REST引脚的配置 4. 外设代码函数编写4.1 主函数能调用的接口函数4.2 二级内部调用函数4.3 第三级最底层函数4.4 头文件 5. 使用教程 1. 前言&#xff08…

RC522(RFID)读写驱动

文章目录 1、RC522驱动原理2、手机APP查看卡信息3、驱动移植4、读写卡5、源码 1、RC522驱动原理 我们常见的RC522大概如下所示,PCB部分是主机,然后白色的和绿色的都是IC卡,IC卡可以存储信息,通过靠近PCB主机部分就可以被感应到从…

RC522模块学习

目录 1.原理简介 2.SPI通信 3.获取卡号实验 3.驱动函数 参考: https://www.cnblogs.com/ivantang/p/3904025.html https://xiaolong.blog.csdn.net/article/details/117075834?spm1001.2014.3001.5506 https://blog.csdn.net/weixin_47316662/article/detai…

Jmeter下载安装配置---测试小白

一,进入官网:http://jmeter.apache.org/ 1.第一步进入官网如下图 2.选择进行下载,下载下来为一个压缩包,解压即可。 3.我下载的是jmeter4.0版本,对应jdk1.8。然后就进行解压。个人认为要注意3点:1.解压之后…

Windows版JMeter下载安装

进入apache官网https://www.apache.org/dist/jmeter/binaries下载Windows版本JMeter;配置环境变量(JMETER_HOMED:\JMeter\apache-jmeter-5.1.1)配置环境变量(classpath%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%…

JMeter下载安装

一、环境准备 1.Jmeter是纯Java开发的, 能够运行Java程序的系统一般都可以运行Jmeter, 如:Windows、 Linux、 mac等。由于是由Java开发,所以自然需要jdk环境。 2.去官方下载JMeter安装包:Apache JMeter - Download Apa…

Mac版本Jmeter下载安装教程

Mac版本Jmeter下载安装教程 1. 下载&安装&启动Jmeter1.1 下载安装包:1.2 解压安装包1.3 启动Jmeter1.4 Jmeter页面 2. Jmeter进一步优化配置2.1 打开&编辑&保存配置文件~/.bash_profile步骤一:打开配置文件~/.bash_profile步骤二&#x…

JMeter-文件下载教程

一、单个下载配置方法 1、先添加线程组 选中测试计划右键添加线程组:测试计划->添加->线程(用户)->线程组 2、添加HTTP请求 ①. 选中线程组右键添加HTTP请求:线程组->添加->取样器->HTTP请求 ②.配置HPPT请求 3、添加BeanShell 取…

jmeter下载与安装教程

jmeter下载与安装教程 下载步骤: 自行百度jmeter下载,找到apache官网;进入网站后,选择左侧Download下的Download Releases;如图所示 2.页面进入新的页面后,点击此页面Binaries标签下的“apache-jmeter-5…

Jmeter下载及安装教程

下载及环境配置 下载 前置条件,电脑得配置Java环境,也就是安装jdk,可百度jdk安装教程。 1、下载地址:Apache JMeter - Download Apache JMeter,(Windows版本下载.zip,Linux版本下载.tgz&…

Jmeter下载安装详细步骤(2021)

Jmeter下载安装详细步骤(2021) 由于项目方有压测需求,因此需要学习Jmeter压测工具的使用,避免遗忘,记录一下Jmeter下载安装的步骤 这里面有个坑就是Jmeter需要依赖JAVA环境,在安装Jmeter之前需要配置好JA…