Advertisement

RC522完整程序详解

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
《RC522完整程序详解》是一份全面解析RFID模块RC522编程应用的技术文档,详细介绍了RC522的工作原理、电路连接及各类语言下的操作实例。适合初学者和进阶用户参考学习。 功能:寻卡 参数: - `req_code[IN]` 寻找卡片的方式 - `0x52` 表示寻找符合14443A标准的所有感应区内的卡片。 - `0x26` 表示仅寻找未进入休眠状态的卡片。 返回值:成功时返回MI_OK ```c signed char PcdRequest(unsigned char req_code, unsigned char *pTagType) { signed char status; unsigned int unLen; unsigned char ucComMF522Buf[MAXRLEN]; ClearBitMask(Status2Reg, 0x08); WriteRawRC(BitFramingReg, 0x07); SetBitMask(TxControlReg, 0x03); ucComMF522Buf[0] = req_code; status = PcdComMF522(PCD_TRANSCEIVE, ucComMF522Buf, 1, ucComMF522Buf, &unLen); if ((status == MI_OK) && (unLen == 0x10)) { *pTagType = ucComMF522Buf[0]; *(pTagType + 1) = ucComMF522Buf[1]; } else { status = MI_ERR; } return status; } ``` 功能:防冲撞 参数: - `pSnr[OUT]` 卡片序列号,4字节。 返回值:成功时返回MI_OK ```c signed char PcdAnticoll(unsigned char *pSnr) { signed char status; unsigned char i, snr_check = 0; unsigned int unLen; unsigned char ucComMF522Buf[MAXRLEN]; ClearBitMask(Status2Reg, 0x08); WriteRawRC(BitFramingReg, 0x00); ClearBitMask(CollReg, 0x80); ucComMF522Buf[0] = PICC_ANTICOLL1; ucComMF522Buf[1] = 0x20; status = PcdComMF522(PCD_TRANSCEIVE, ucComMF522Buf, 2, ucComMF522Buf, &unLen); if (status == MI_OK) { for(i=0; i<4; i++) { *(pSnr + i) = ucComMF522Buf[i]; snr_check ^= ucComMF522Buf[i]; } if(snr_check != ucComMF522Buf[i]) { status = MI_ERR; } } SetBitMask(CollReg, 0x80); return status; } ``` 功能:选定卡片 参数: - `pSnr[IN]` 卡片序列号,4字节。 返回值:成功时返回MI_OK ```c signed char PcdSelect(unsigned char *pSnr) { signed char status; unsigned int unLen; unsigned char ucComMF522Buf[MAXRLEN]; ucComMF522Buf[0] = PICC_SElECTTAG; for(int i=1; i<8;i++) { ucComMF522Buf[i] = *(pSnr + (i-1)); } status = PcdComMF522(PCD_TRANSCEIVE, ucComMF522Buf, 7, ucComMF522Buf, &unLen); if((status == MI_OK) && ((ucComMF522Buf[0] & 0x0F) == PICC_CMD_SAK)) { status = MI_ERR; } return status; } ``` 功能:验证卡片状态 参数: - `auth_mode` 验证模式 - `addr` 地址 - `pKey` 密钥指针,6字节。 - `pSnr` 卡片序列号。 返回值:成功时返回MI_OK ```c signed char PcdAuthState(unsigned char auth_mode, unsigned char addr, unsigned char *pKey, unsigned char *pSnr) { signed char status; unsigned int unLen; unsigned char i, ucComMF522Buf[MAXRLEN]; ucComMF522Buf[0] = auth_mode; ucComMF522Buf[1] = addr; for (i=0;i<6; i++) { ucComMF5

全部评论 (0)

还没有任何评论哟~
客服
客服
  • RC522
    优质
    《RC522完整程序详解》是一份全面解析RFID模块RC522编程应用的技术文档,详细介绍了RC522的工作原理、电路连接及各类语言下的操作实例。适合初学者和进阶用户参考学习。 功能:寻卡 参数: - `req_code[IN]` 寻找卡片的方式 - `0x52` 表示寻找符合14443A标准的所有感应区内的卡片。 - `0x26` 表示仅寻找未进入休眠状态的卡片。 返回值:成功时返回MI_OK ```c signed char PcdRequest(unsigned char req_code, unsigned char *pTagType) { signed char status; unsigned int unLen; unsigned char ucComMF522Buf[MAXRLEN]; ClearBitMask(Status2Reg, 0x08); WriteRawRC(BitFramingReg, 0x07); SetBitMask(TxControlReg, 0x03); ucComMF522Buf[0] = req_code; status = PcdComMF522(PCD_TRANSCEIVE, ucComMF522Buf, 1, ucComMF522Buf, &unLen); if ((status == MI_OK) && (unLen == 0x10)) { *pTagType = ucComMF522Buf[0]; *(pTagType + 1) = ucComMF522Buf[1]; } else { status = MI_ERR; } return status; } ``` 功能:防冲撞 参数: - `pSnr[OUT]` 卡片序列号,4字节。 返回值:成功时返回MI_OK ```c signed char PcdAnticoll(unsigned char *pSnr) { signed char status; unsigned char i, snr_check = 0; unsigned int unLen; unsigned char ucComMF522Buf[MAXRLEN]; ClearBitMask(Status2Reg, 0x08); WriteRawRC(BitFramingReg, 0x00); ClearBitMask(CollReg, 0x80); ucComMF522Buf[0] = PICC_ANTICOLL1; ucComMF522Buf[1] = 0x20; status = PcdComMF522(PCD_TRANSCEIVE, ucComMF522Buf, 2, ucComMF522Buf, &unLen); if (status == MI_OK) { for(i=0; i<4; i++) { *(pSnr + i) = ucComMF522Buf[i]; snr_check ^= ucComMF522Buf[i]; } if(snr_check != ucComMF522Buf[i]) { status = MI_ERR; } } SetBitMask(CollReg, 0x80); return status; } ``` 功能:选定卡片 参数: - `pSnr[IN]` 卡片序列号,4字节。 返回值:成功时返回MI_OK ```c signed char PcdSelect(unsigned char *pSnr) { signed char status; unsigned int unLen; unsigned char ucComMF522Buf[MAXRLEN]; ucComMF522Buf[0] = PICC_SElECTTAG; for(int i=1; i<8;i++) { ucComMF522Buf[i] = *(pSnr + (i-1)); } status = PcdComMF522(PCD_TRANSCEIVE, ucComMF522Buf, 7, ucComMF522Buf, &unLen); if((status == MI_OK) && ((ucComMF522Buf[0] & 0x0F) == PICC_CMD_SAK)) { status = MI_ERR; } return status; } ``` 功能:验证卡片状态 参数: - `auth_mode` 验证模式 - `addr` 地址 - `pKey` 密钥指针,6字节。 - `pSnr` 卡片序列号。 返回值:成功时返回MI_OK ```c signed char PcdAuthState(unsigned char auth_mode, unsigned char addr, unsigned char *pKey, unsigned char *pSnr) { signed char status; unsigned int unLen; unsigned char i, ucComMF522Buf[MAXRLEN]; ucComMF522Buf[0] = auth_mode; ucComMF522Buf[1] = addr; for (i=0;i<6; i++) { ucComMF5
  • STM32烧录
    优质
    本教程详细介绍了如何使用编程工具将完整的程序代码成功烧录到STM32微控制器中,涵盖从环境搭建到实际操作的各项步骤。 STM32全套程序烧录详解(超详细),包括如何为带有stm32F103芯片的加密卡和控制板进行编程以及如何烧写EPM7032AE 芯片。
  • 南开一百题答案
    优质
    本书《南开一百题完整程序答案详解》提供了针对南开大学相关课程的一百道精选题目及其详细解答,旨在帮助学生深入理解知识点,提升解题能力。 南开一百题完整程序答案适用于二三级考试。二级C语言上机考试与三级数据库上机考试的编程题目相似。
  • C# Xamarin 版教
    优质
    本教程全面讲解使用C#和Xamarin进行跨平台移动应用开发的知识与技能,适合初学者及进阶开发者参考。 C# Xamarin 最完整版教程:详解iOS与Android开发流程。
  • PCB拼板
    优质
    本教程全面解析PCB拼板的设计与制作流程,涵盖布局规划、切割设计及生产注意事项等关键环节,帮助电子制造者优化生产和降低成本。 本段落主要介绍了PCB拼版的相关知识,希望对你学习有所帮助。
  • RTC
    优质
    《RTC详解—完整版》是一本全面解析实时通信技术的专业书籍,深入浅出地介绍了RTC原理、应用及开发实践。适合开发者和技术爱好者阅读学习。 实时时钟(Real-Time Clock)是PC主板上的晶振及相关电路组成的时钟电路的生成脉冲。RTC经过8254电路变频后产生一个频率较低一些的系统时钟TSC,这个系统时钟每经历一个CPU周期就会加一,在每次系统启动初期通过RTC进行初始化。而8254本身的工作也需要依赖于驱动时钟(PIT)。
  • ECharts与源码
    优质
    《ECharts完整教程与源码详解》是一本全面解析ECharts图表库的书籍,深入浅出地介绍了ECharts的各项功能和使用方法,并提供了丰富的源代码示例。 最近我全身心投入到对ECharts的研究之中,仔细研究了官网代码以及网上的各种相关资料,并最终整理和分析形成了这套完整的ECharts文档。由于该教程采用了Word中的VBA功能,应用了滚动下拉框形式,因此无法在手机上正常查看。这份教程包含了源码、插件、详细分析、截图及备注等,基本能满足工作与日常使用的需求。涵盖了柱状图(bar)、饼图(pie)、折线图(line)和地图(map)这四种常用的统计图表类型,而仪表盘等其他类型的图表也大同小异。相信这份文档能帮助你快速且稳定地了解ECharts的精髓!
  • RC522测试电路图
    优质
    《RC522测试电路图详解》是一份详细指导文档,内容涵盖RFID模块RC522的基础知识、工作原理及其实用电路设计。通过本指南,读者能够深入了解如何构建与调试基于RC522的读写器电路,并掌握基本的硬件配置技巧。适合电子爱好者和工程师学习参考。 RC522是一款在RFID领域广泛应用的芯片,主要用于与无接触式IC卡进行通信。本测试项目将重点探讨如何使用51单片机控制RC522,并完成上位机测试实验。 首先需要了解的是51系列单片机的基本结构和工作原理。这种微控制器具有丰富的IO口、定时器以及中断系统,适用于各种嵌入式应用场合。在本实验中,51单片机会作为主控单元来处理读卡和数据传输的任务。 RC522是NXP公司推出的一款基于MFRC522的RFID模块,支持13.56MHz频率,并且兼容ISOIEC 7810标准。它具备天线接口、模拟前端、数字信号处理器以及安全功能等特性,能够实现与符合该协议的非接触式IC卡进行双向通信。 为了将51单片机和RC522连接起来,你需要熟悉RC522的引脚配置,包括SPI(串行外设接口)及INT(中断请求)。通过使用MISO、MOSI、SCK以及SS这四条线构成的SPI协议进行编程,可以实现对RC522命令和数据传输的有效控制。 上位机测试实验通常指的是在个人计算机上运行的软件程序,用于监测并控制下位机(即51单片机)。通过串口通信、USB接口或网络连接等方式来达成这一目的。在这个实验中,你可能需要编写一个能够接收从51单片机发送过来的数据,并显示处理这些数据信息的应用程序。 实际操作时还需要有一个合适的电路图指导正确的硬件连接方式,确保足够的电源供应并采取必要的抗干扰措施(如使用滤波电容和退耦电容)。此外还需正确配置RC522的天线以保证有效的射频信号传输效率。 《TJDZ-RC522射频卡用户使用手册资料Ver_1.0》可能包含了关于操作指南、电路设计建议以及编程示例等多方面内容。通过仔细阅读并参照这份文档,能够更好地理解和掌握如何在51单片机环境下实现RFID读取与测试功能。 综上所述,本实验的核心在于利用SPI协议使51单片机控制RC522完成RFID卡的读写操作,并且借助于上位机软件来进行数据交互及相关的测试工作。整个过程中涉及到的知识点包括但不限于:51单片机编程、SPI通信原理、RFID通讯标准的理解以及电路设计和上位机应用开发等多方面内容。通过深入学习与实践,可以掌握这一系统的完整运作流程。
  • [版] Python真题填空及阅读理试题(版).doc
    优质
    这份文档提供了详细的Python编程语言真题练习,包括程序填空和阅读理解两部分,旨在帮助学习者全面掌握Python知识并提升解题能力。 一、程序填空 1.有如下程序段: ```python sum = 0 for i in range(1,20,3) : sum += i print(sum=,sum) ``` (1)循环变量i的初值为:**1**,终值为:**19**,步长为:**3**。 (2)该程序执行后,输出的结果为:sum= **60**。 2.编写一个程序来计算序列 1 + 2^2 + 3^2 + ... + 100^2 的总和: ```python total = 0 for i in range(1, 101): total += i * i print(total) input(运行完毕,请按回车键退出...) ``` 3.完善程序。以下是计算序列 S=1+6+11+…+101 的代码片段。请在空白处填入正确的语句。 ```python s = 0 k = 1 while(k <= 101): s += k k += 5 print(s) ``` 4.调试程序,阅读并重写以下程: (原文中未提供具体代码内容,因此无法直接修改。请根据上下文理解给出的提示来调整和优化现有代码逻辑或结构以确保其功能正确且高效运行)