> 文章列表 > K_A33_001 基于STM32等单片机驱动RC522射频卡 读写IC卡 串口显示

K_A33_001 基于STM32等单片机驱动RC522射频卡 读写IC卡 串口显示

K_A33_001 基于STM32等单片机驱动RC522射频卡 读写IC卡 串口显示

K_A33_001 基于STM32等单片机驱动RC522射频卡 读写IC卡 串口显示

  • 所有资源导航
  • 一、资源说明
  • 二、基本参数
  • 三、驱动说明
    • 时序:
    • 对应程序:
  • 四、部分代码说明
    • 1、接线引脚定义
      • 1.1、STC89C52RC+RC522射频模块
      • 1.2、STM32F103C8T6+RC522射频模块
  • 五、基础知识学习与相关资料下载
  • 六、视频效果展示与程序资料获取
  • 七、注意事项
  • 八、接线说明
    • STC89C52RC
    • STM32F103C8T6

请添加图片描述

所有资源导航

其他资料目录 直戳跳转

一、资源说明

单片机型号 测试条件 模块名称 代码功能
STC89C52RC 晶振11.0592M RC522射频模块 STC89C52RC驱动RC522射频模块 串口显示
STM32F103C8T6 晶振8M/系统时钟72M RC522射频模块 STM32F103C8T6驱动RC522射频模块 串口显示

二、基本参数

参数

读写器 :支持 ISO 14443A/MIFARE
通信方式 :SPI 通信
工作电流:13—26mA/直流3.3V
空闲电流:10-13mA/直流3.3V
休眠电流:<80uA
峰值电流:<30mA
工作频率:13.56MHz
数据传输速率:≤10Mbit/s

引脚说明

RC522射频卡模块 引脚说明
VCC(+) 正极 3.3V供电
GDN 电源负极
RST 复位
IRQ 中断信号
MISO 主进从出数据引脚
MOSI 从进主出数据引脚
SCK 时钟
SDA 片选

三、驱动说明

时序:

K_A33_001 基于STM32等单片机驱动RC522射频卡 读写IC卡 串口显示

对应程序:

以51为例

/
//功    能:读RC522寄存器
//参数说明:Address[IN]:寄存器地址
//返    回:读出的值
/
unsigned char ReadRawRC(unsigned char Address)
{unsigned char i, ucAddr;unsigned char ucResult=0;MF522_SCK = 0;MF522_SDA = 0;ucAddr = ((Address<<1)&0x7E)|0x80;for(i=8;i>0;i--){MF522_MOSI = ((ucAddr&0x80)==0x80);MF522_SCK = 1;ucAddr <<= 1;MF522_SCK = 0;}for(i=8;i>0;i--){MF522_SCK = 1;ucResult <<= 1;ucResult|=(bit)MF522_MISO;MF522_SCK = 0;}MF522_SDA = 1;MF522_SCK = 1;return ucResult;}/
//功    能:写RC522寄存器
//参数说明:Address[IN]:寄存器地址
//          value[IN]:写入的值
/void WriteRawRC(unsigned char Address, unsigned char value)
{  unsigned char i, ucAddr;MF522_SCK = 0;MF522_SDA = 0;ucAddr = ((Address<<1)&0x7E);for(i=8;i>0;i--){MF522_MOSI = ((ucAddr&0x80)==0x80);MF522_SCK = 1;ucAddr <<= 1;MF522_SCK = 0;}for(i=8;i>0;i--){MF522_MOSI = ((value&0x80)==0x80);MF522_SCK = 1;value <<= 1;MF522_SCK = 0;}MF522_SDA = 1;MF522_SCK = 1;
}

四、部分代码说明

1、接线引脚定义

需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改

1.1、STC89C52RC+RC522射频模块

//RC522射频卡模块引脚定义
sbit     MF522_SDA  = P1^7 ;				//SDA
sbit     MF522_SCK  = P1^6;         //SCK
sbit     MF522_MOSI = P1^5;         //MOSI
sbit     MF522_MISO = P1^4;         //MISO
sbit     MF522_RST  = P1^3;         //RST

1.2、STM32F103C8T6+RC522射频模块

//RC522射频卡模块引脚定义 
/* RC522 引脚定义 */
#define               macRC522_GPIO_SDA_CLK_FUN                  RCC_APB2PeriphClockCmd
#define               macRC522_GPIO_SDA_CLK                      RCC_APB2Periph_GPIOA
#define               macRC522_GPIO_SDA_PORT    	               GPIOA			   
#define               macRC522_GPIO_SDA_PIN		                   GPIO_Pin_4
#define               macRC522_GPIO_SDA_Mode		                 GPIO_Mode_Out_PP#define               macRC522_GPIO_SCK_CLK_FUN                 RCC_APB2PeriphClockCmd
#define               macRC522_GPIO_SCK_CLK                     RCC_APB2Periph_GPIOA
#define               macRC522_GPIO_SCK_PORT    	              GPIOA			   
#define               macRC522_GPIO_SCK_PIN		                  GPIO_Pin_5
#define               macRC522_GPIO_SCK_Mode		                GPIO_Mode_Out_PP#define               macRC522_GPIO_MOSI_CLK_FUN                RCC_APB2PeriphClockCmd
#define               macRC522_GPIO_MOSI_CLK                    RCC_APB2Periph_GPIOA
#define               macRC522_GPIO_MOSI_PORT    	              GPIOA			   
#define               macRC522_GPIO_MOSI_PIN		                GPIO_Pin_7
#define               macRC522_GPIO_MOSI_Mode		                GPIO_Mode_Out_PP#define               macRC522_GPIO_MISO_CLK_FUN                RCC_APB2PeriphClockCmd
#define               macRC522_GPIO_MISO_CLK                    RCC_APB2Periph_GPIOA
#define               macRC522_GPIO_MISO_PORT    	              GPIOA			   
#define               macRC522_GPIO_MISO_PIN		                GPIO_Pin_6
#define               macRC522_GPIO_MISO_Mode		                GPIO_Mode_IN_FLOATING#define               macRC522_GPIO_RST_CLK_FUN                 RCC_APB2PeriphClockCmd
#define               macRC522_GPIO_RST_CLK                     RCC_APB2Periph_GPIOB
#define               macRC522_GPIO_RST_PORT    	              GPIOB		   
#define               macRC522_GPIO_RST_PIN		                  GPIO_Pin_0
#define               macRC522_GPIO_RST_Mode		                GPIO_Mode_Out_PP

五、基础知识学习与相关资料下载

1、STC89C52RC程序下载 直戳跳转

2、STM32F103C8T6程序下载
(1)串口下载 直戳跳转
(2)ST-LINK下载 直戳跳转
(3)J-LINK下载 直戳跳转
(4)DAP-LINK下载 直戳跳转

3、OLED0.96程序说明 直戳跳转

4、串口助手下载与使用
(1)安信可调试助手使用 直戳跳转
(2) sscom33串口调试助手使用 直戳跳转
(3)STC-ISP串口调试助手使用 直戳跳转

六、视频效果展示与程序资料获取

视频连接 直戳跳转
资料获取 ( 滑到最后添加个人号)

七、注意事项

1、VCC GND请勿接反,接反易烧
2、OLED显示异常时,排除接线接触不良

八、接线说明

STC89C52RC

///  生成日期   : 2021-6-21
//  最近修改   : 2021-11-21
//  功能描述   : RC522模块测试程序
//  测试条件   : STC89C52RC   晶振11.0592
接线RC522-------------------------------------STC89C52RC
VCC  -------------------------------------3.3V
GND  -------------------------------------GND
RST  -------------------------------------P1.3
MISO -------------------------------------P1.4
MOSI -------------------------------------P1.5
SCK  -------------------------------------P1.6
SDA  -------------------------------------P1.7
*/

STM32F103C8T6

/
//  生成日期   : 2021-6-21
//  最近修改   : 2021-11-21
//  功能描述   : RC522模块测试程序
//  测试条件   : STM32F103C8T6   晶振8M  系统时钟72MRC522-------------------------------------STM32F103C8T6
VCC  -------------------------------------3.3V
GND  -------------------------------------GND
RST  -------------------------------------GPIOB_0
MISO -------------------------------------GPIOA_6
MOSI -------------------------------------GPIOA_7
SCK  -------------------------------------GPIOA_5
SDA  -------------------------------------GPIOA_4
*/