1

STM32中RFID模块(MFRC522)简单应用 - L*K

 2 months ago
source link: https://www.cnblogs.com/lyk-23/p/18106085
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

STM32中RFID模块(MFRC522)简单应用 - L*K - 博客园

​ 此篇只是对RFID模块的简单概述以及应用,没有原理,对提供的店家提供的代码,进行注释,以及简单使用流程

image-20240330211232470
//功    能:寻卡
//参数说明: req_code[IN]:寻卡方式
//                0x52 = 寻感应区内所有符合14443A标准的卡
//                0x26 = 寻未进入休眠状态的卡
//          	  pTagType[OUT]:卡片类型代码
//                0x4400 = Mifare_UltraLight
//                0x0400 = Mifare_One(S50)
//                0x0200 = Mifare_One(S70)
//                0x0800 = Mifare_Pro(X)
//                0x4403 = Mifare_DESFire
//返    回: 成功返回MI_OK
/////////////////////////////////////////////////////////////////////
char PcdRequest(unsigned char req_code,unsigned char *pTagType);

寻卡:感应区域内的所有符合要求的ID卡,并把卡片类型记录在第二个参数中。

//功    能:防冲撞
//参数说明: pSnr[OUT]:卡片序列号,4字节
//返    回: 成功返回MI_OK
/////////////////////////////////////////////////////////////////////  
char PcdAnticoll(unsigned char *pSnr);

防冲撞:只读取区域内的一张卡,并把读取卡的卡序列号记录在参数中,前四个字节为卡序列号,第五个字节为校验字节。

//功能描述选卡读取卡存储器容量
//输入参数serNum--传入卡序列号
//返 回 值成功返回卡容量
char PcdSelect(unsigned char *pSnr)

选卡:返回读取卡的的存储器容量

//功能描述验证卡片密码
//输入参数authMode--密码验证模式
//					0x60 = 验证A密钥
//					0x61 = 验证B密钥
//					BlockAddr--块地址
//					Sectorkey--扇区密码
//					serNum--卡片序列号4字节
//返 回 值成功返回MI_OK
char PcdAuthState(unsigned char auth_mode,unsigned char addr,unsigned char *pKey,unsigned char *pSnr)

验证卡片密码:只有通过了验证密码,才能对ID卡进行读写。

//功    能:读取M1卡一块数据
//参数说明: addr[IN]:块地址
//          pData[OUT]:读出的数据,16字节
//返    回: 成功返回MI_OK
///////////////////////////////////////////////////////////////////// 
char PcdRead(unsigned char addr,unsigned char *pData)

eg:读卡

//功    能:写数据到M1卡一块
//参数说明: addr[IN]:块地址
//          pData[IN]:写入的数据,16字节
//返    回: 成功返回MI_OK
/////////////////////////////////////////////////////////////////////                  
char PcdWrite(unsigned char addr,unsigned char *pData)

eg:写卡要小心,特别是各区的块3,那个是存放密码的地方

//功    能:命令卡片进入休眠状态
//返    回: 成功返回MI_OK
/////////////////////////////////////////////////////////////////////
char PcdHalt(void)

休眠:节省电能,避免不必要的通信,安全性考虑

image-20240330211410565

3.3v -------------- 3V3

RST --------------

GND -------------- GND

IRQ -------------- 不接

MISO --------------

MOSI --------------

SCK ---------------

SDA(CS)-------------

可以自己找引脚接,然后对引脚进行配置.

4. 简单使用思路

​ 第一次读卡记录卡序列号,这一次的卡序列号作为以后的验证序列号,判断以后读取的卡序列号是否为这个,如果一样,则任务验证成功,也可以写一个函数可以录入新卡号代替第一次的卡号。

5 参考代码

链接:https://pan.baidu.com/s/1rLAGtb4nt9NlJ6_cC2YUEA?pwd=RFID
提取码:RFID

__EOF__

本文作者: LYK 本文链接: https://www.cnblogs.com/lyk-23/p/18106085 关于博主: 评论和私信会在第一时间回复。或者直接私信我。 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处! 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK