資源簡介
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源碼
評論
共有 條評論