• 大小: 292KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-02-04
  • 语言: 其他
  • 标签: RC522  

资源简介

RC522&STM32刷卡例程

资源截图

代码片段和文件信息

//#include “include.h“
#include “sys.h“
#include “rc522.h“

void delay_ns(u32 ns)
{
  u32 i;
  for(i=0;i  {
    __nop();
    __nop();
    __nop();
  }
}

u8 SPIWriteByte(u8 Byte)
{
while((SPI2->SR&0X02)==0); //等待发送区空   
SPI2->DR=Byte;   //发送一个byte   
while((SPI2->SR&0X01)==0);//等待接收完一个byte  
return SPI2->DR;                //返回收到的数据
}
void SPI2_Init(void)
{
// SPI_InitTypeDef  SPI_InitStructure;
//GPIO_InitTypeDef GPIO_InitStructure;
 
//配置SPI2管脚

RCC->APB2ENR|=1<<0;
RCC->APB2ENR|=1<<3;
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOB ENABLE);

GPIOB->CRH&=0X000FFFFF;
GPIOB->CRH|=0XB8B00000;

GPIOB->CRL&=0XFFFFFF00;  //PB.1 复位
GPIOB->CRL|=0X00000033; //PB.0 片选 推挽输出
// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_15;
// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
// GPIO_Init(GPIOB &GPIO_InitStructure);
//
// GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_14;    
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; 
// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
// GPIO_Init(GPIOB &GPIO_InitStructure);  

RCC->APB1ENR|=1<<14;


SPI2->CR1|=0<<10;//全双工模式
SPI2->CR1|=1<<9; //软件nss管理
SPI2->CR1|=1<<8;  

SPI2->CR1|=1<<2; //SPI主机
SPI2->CR1|=0<<11;//8bit数据格式
SPI2->CR1&=~0x02; //空闲模式下SCK为0 CPOL=0
SPI2->CR1&=~0x01; //数据采样从第一个时间边沿开始CPHA=0  
SPI2->CR1|=7<<3; //Fsck=Fcpu/4
SPI2->CR1|=0<<7; //MSBfirst   
SPI2->CR1|=1<<6; //SPI设备使能
//SPIx_ReadWriteByte(0xff);//启动传输   
}

void InitRc522(void)
{
  SPI2_Init();
  PcdReset();
  PcdAntennaOff();  
  PcdAntennaOn();
  M500PcdConfigISOType( ‘A‘ );
}
void Reset_RC522(void)
{
PcdReset();
  PcdAntennaOff();  
  PcdAntennaOn();
}                         
/////////////////////////////////////////////////////////////////////
//功    能:寻卡
//参数说明: req_code[IN]:寻卡方式
//                0x52 = 寻感应区内所有符合14443A标准的卡
//                0x26 = 寻未进入休眠状态的卡
//          pTagType[OUT]:卡片类型代码
//                0x4400 = Mifare_UltraLight
//                0x0400 = Mifare_One(S50)
//                0x0200 = Mifare_One(S70)
//                0x0800 = Mifare_Pro(X)
//                0x4403 = Mifare_DESFire
//返    回: 成功返回MI_OK
/////////////////////////////////////////////////////////////////////
char PcdRequest(u8   req_codeu8 *pTagType)
{
char   status;  
u8   unLen;
u8   ucComMF522Buf[MAXRLEN]; 

ClearBitMask(Status2Reg0x08);
WriteRawRC(BitFramingReg0x07);
SetBitMask(TxControlReg0x03);
 
ucComMF522Buf[0] = req_code;

status = PcdComMF522(PCD_TRANSCEIVEucComMF522Buf1ucComMF522Buf&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
////////////////

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1756  2011-01-12 20:50  读卡实验\HARDWARE\EXTI\exti.c

     文件        628  2011-01-12 20:51  读卡实验\HARDWARE\EXTI\exti.h

     文件       1795  2011-01-12 20:46  读卡实验\HARDWARE\KEY\key.c

     文件        839  2011-01-12 20:46  读卡实验\HARDWARE\KEY\key.h

     文件      16155  2010-06-21 11:18  读卡实验\HARDWARE\LCD\FONT.H

     文件      30738  2012-07-19 21:11  读卡实验\HARDWARE\LCD\ILI93xx.c

     文件       8564  2012-07-19 21:11  读卡实验\HARDWARE\LCD\LCD.h

     文件        942  2011-01-12 20:34  读卡实验\HARDWARE\LED\led.c

     文件        288  2010-05-27 17:30  读卡实验\HARDWARE\LED\led.h

     文件      16156  2010-03-19 17:16  读卡实验\HARDWARE\OLED\FONT.H

     文件       6856  2011-01-12 21:02  读卡实验\HARDWARE\OLED\oled.c

     文件       1625  2011-01-12 21:02  读卡实验\HARDWARE\OLED\oled.h

     文件      18672  2013-03-16 14:33  读卡实验\HARDWARE\rc522.c

     文件       6400  2013-03-16 11:39  读卡实验\HARDWARE\rc522.h

     文件       2005  2011-01-12 20:59  读卡实验\HARDWARE\TIMER\timer.c

     文件        724  2011-01-12 20:59  读卡实验\HARDWARE\TIMER\timer.h

     文件       2088  2011-01-12 20:56  读卡实验\HARDWARE\WDG\wdg.c

     文件        756  2011-01-12 20:56  读卡实验\HARDWARE\WDG\wdg.h

     文件        399  2011-04-23 10:24  读卡实验\keilkilll.bat

     文件        599  2012-07-22 16:48  读卡实验\README.TXT

    I.A....     55484  2013-03-12 16:29  读卡实验\RFID.pdf

     文件       2038  2011-01-12 20:34  读卡实验\SYSTEM\delay\delay.c

     文件        876  2011-01-12 20:34  读卡实验\SYSTEM\delay\delay.h

     文件       6885  2011-01-12 20:34  读卡实验\SYSTEM\sys\sys.c

     文件       3839  2011-01-12 20:34  读卡实验\SYSTEM\sys\sys.h

     文件       3342  2011-04-17 15:42  读卡实验\SYSTEM\usart\usart.c

     文件       1052  2013-03-15 21:00  读卡实验\SYSTEM\usart\usart.h

     文件      11307  2009-12-22 19:16  读卡实验\USER\STM32F10x.s

     文件       5601  2013-03-16 13:15  读卡实验\USER\test.c

     文件      49048  2013-03-16 13:04  读卡实验\USER\TEST.hex

............此处省略22个文件信息

评论

共有 条评论