RC522通过SPI方式读写M1卡.docx
- 文档编号:1517289
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:22
- 大小:20.21KB
RC522通过SPI方式读写M1卡.docx
《RC522通过SPI方式读写M1卡.docx》由会员分享,可在线阅读,更多相关《RC522通过SPI方式读写M1卡.docx(22页珍藏版)》请在冰豆网上搜索。
RC522通过SPI方式读写M1卡
1.准备工作
战舰V3开发板,RC522模块为淘宝所买,赠送一张M1卡。
SPI方式实测可以读写。
2.RC522部分:
rc522.h:
/////////////////////////////////////////////////////////////////////
#include"sys.h"
//MF522命令字
/////////////////////////////////////////////////////////////////////
#definePCD_IDLE 0x00 //取消当前命令
#definePCD_AUTHENT 0x0E //验证密钥
#definePCD_RECEIVE 0x08 //接收数据
#definePCD_TRANSMIT 0x04 //发送数据
#definePCD_TRANSCEIVE 0x0C //发送并接收数据
#definePCD_RESETPHASE 0x0F //复位
#definePCD_CALCCRC 0x03 //CRC计算
/////////////////////////////////////////////////////////////////////
//Mifare_One卡片命令字
/////////////////////////////////////////////////////////////////////
#definePICC_REQIDL 0x26 //寻天线区内未进入休眠状态
#definePICC_REQALL 0x52 //寻天线区内全部卡
#definePICC_ANTICOLL1 0x93 //防冲撞
#definePICC_ANTICOLL2 0x95 //防冲撞
#definePICC_AUTHENT1A 0x60 //验证A密钥
#definePICC_AUTHENT1B 0x61 //验证B密钥
#definePICC_READ 0x30 //读块
#definePICC_WRITE 0xA0 //写块
#definePICC_DECREMENT 0xC0 //扣款
#definePICC_INCREMENT 0xC1 //充值
#definePICC_RESTORE 0xC2 //调块数据到缓冲区
#definePICC_TRANSFER 0xB0 //保存缓冲区中数据
#definePICC_HALT 0x50 //休眠
/////////////////////////////////////////////////////////////////////
//MF522FIFO长度定义
/////////////////////////////////////////////////////////////////////
#defineDEF_FIFO_LENGTH 64 //FIFOsize=64byte
#defineMAXRLEN 18
/////////////////////////////////////////////////////////////////////
//MF522寄存器定义
/////////////////////////////////////////////////////////////////////
//PAGE0
#define RFU00 0x00
#define CommandReg 0x01
#define ComIEnReg 0x02
#define DivlEnReg 0x03
#define ComIrqReg 0x04
#define DivIrqReg 0x05
#define ErrorReg 0x06
#define Status1Reg 0x07
#define Status2Reg 0x08
#define FIFODataReg 0x09
#define FIFOLevelReg 0x0A
#define WaterLevelReg 0x0B
#define ControlReg 0x0C
#define BitFramingReg 0x0D
#define CollReg 0x0E
#define RFU0F 0x0F
//PAGE1
#define RFU10 0x10
#define ModeReg 0x11
#define TxModeReg 0x12
#define RxModeReg 0x13
#define TxControlReg 0x14
#define TxAutoReg 0x15
#define TxSelReg 0x16
#define RxSelReg 0x17
#define RxThresholdReg 0x18
#define DemodReg 0x19
#define RFU1A 0x1A
#define RFU1B 0x1B
#define MifareReg 0x1C
#define RFU1D 0x1D
#define RFU1E 0x1E
#define SerialSpeedReg 0x1F
//PAGE2
#define RFU20 0x20
#define CRCResultRegM 0x21
#define CRCResultRegL 0x22
#define RFU23 0x23
#define ModWidthReg 0x24
#define RFU25 0x25
#define RFCfgReg 0x26
#define GsNReg 0x27
#define CWGsCfgReg 0x28
#define ModGsCfgReg 0x29
#define TModeReg 0x2A
#define TPrescalerReg 0x2B
#define TReloadRegH 0x2C
#define TReloadRegL 0x2D
#define TCounterValueRegH 0x2E
#define TCounterValueRegL 0x2F
//PAGE3
#define RFU30 0x30
#define TestSel1Reg 0x31
#define TestSel2Reg 0x32
#define TestPinEnReg 0x33
#define TestPinValueReg 0x34
#define TestBusReg 0x35
#define AutoTestReg 0x36
#define VersionReg 0x37
#define AnalogTestReg 0x38
#define TestDAC1Reg 0x39
#define TestDAC2Reg 0x3A
#define TestADCReg 0x3B
#define RFU3C 0x3C
#define RFU3D 0x3D
#define RFU3E 0x3E
#define RFU3F 0x3F
/////////////////////////////////////////////////////////////////////
//和MF522通讯时返回的错误代码
/////////////////////////////////////////////////////////////////////
#define MI_OK 0
#define MI_NOTAGERR
(1)
#define MI_ERR
(2)
#define SHAQU1 0X01
#define KUAI4 0X04
#define KUAI7 0X07
#define REGCARD 0xa1
#define CONSUME 0xa2
#defineREADCARD 0xa3
#defineADDMONEY 0xa4
#defineSPIReadByte()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RC522 通过 SPI 方式 读写 M1