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 片选

    三、驱动说明

    时序:

    请添加图片描述

    对应程序:

    以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
    *************************************************************************************/
    
    
    物联沃分享整理
    物联沃-IOTWORD物联网 » K_A33_001 STM32单片机驱动RC522射频卡,实现IC卡读写和串口显示功能

    发表回复