• STM32中RFID模块(MFRC522)简单应用


    1. 前言

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

    2. 函数

    //功    能:寻卡
    //参数说明: 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)
    

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

    3. 接线

    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 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    [笔记]JavaScript 实现按钮拖拽效果
    如果有些字段不想进行序列化怎么办?
    Flashtxt库轻松处理你的文本.
    小项目-词法分析器
    Redi 的 RDB 和 AOF
    2023年中国车载导航仪产量、销量及市场规模分析[图]
    Ubuntu上安装docker,并连接vscode详细教程
    js中内存泄漏的几种情况
    jsp中使用PDF.js实现pdf文件的预览
    使用NATAPP内网穿透详细步骤
  • 原文地址:https://www.cnblogs.com/lyk-23/p/18106085