资源简介
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个文件信息
- 上一篇:数字钟计时器的设计与制作
- 下一篇:数字信号处理的FPGA实现Verilog源码
相关资源
- RC522读写MI卡程序,STC89C52RC调试通过,
- 正点原子Mini开发板的RC522刷卡程序触
- 基于51单片机的刷卡签到系统
- stm32实现对RC522读写块
- MF RC522 开发板资料及源程序
- 内含RC522与51单片机硬件设计与程序,
- MFRC522射频卡,RFID,非接触式IC卡,感
- protel99se 设计的 RC522非接触读卡器硬件
- 51单片机rc522 射频的程序和与PCB电路图
- RC522全套开发资料,包含pcb原理图,程
- RFID_RC522战舰程序
- stm32 f103RCT6用正点原子Mini板可用的R
- stm32rc522
- STM32的RC522程序
- RFID-RC522+STC89C52+串口通信+新手教程+中
- F103-指南者 RC522程序改版
- RC522实现钱包功能
- stm32驱动rc522程序
- 调试OK的stm8+rc522原理图和源代码
- 基于51单片机控制RC522的设计
- STC单片机控制MFRC522的完整资料,包括
- MFRC522原理图和程序
- STM32+RC522--demo.rar
- RC522饮水机.zip
- STM32战舰版RC522使用例程
- STM32 RFID RC522 模拟SPI 读写卡程序
- stm32读取磁卡ID程序源码
- rc522之51单片机1602显示以及上位机
- 基于STM32的RC522上位机读写射频卡程序
- 基于HAL库STM32+RC522读写卡程序 调试完
评论
共有 条评论