K_A33_001 基于STM32等单片机驱动RC522射频卡 读写IC卡 串口显示
所有资源导航
其他资料目录 直戳跳转
一、资源说明
单片机型号 | 测试条件 | 模块名称 | 代码功能 |
---|---|---|---|
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 | 片选 |
三、驱动说明
时序:
对应程序:
以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 系统时钟72M
RC522-------------------------------------STM32F103C8T6
VCC -------------------------------------3.3V
GND -------------------------------------GND
RST -------------------------------------GPIOB_0
MISO -------------------------------------GPIOA_6
MOSI -------------------------------------GPIOA_7
SCK -------------------------------------GPIOA_5
SDA -------------------------------------GPIOA_4
*************************************************************************************/