資源簡(jiǎn)介
里面是之前寫過(guò)的關(guān)于rc522的一點(diǎn)使用方法,也參考過(guò)一些文章等資料
代碼片段和文件信息
/*
?*?RFID.cpp?-?Library?to?use?ARDUINO?RFID?MODULE?KIT?13.56?MHZ?WITH?TAGS?SPI?W?AND?R?BY?COOQROBOT.
?*?based?on?code?Dr.Leong???(?WWW.B2CQSHOP.COM?)
?*?Created?by?Miguel?Balboa?Jan?2012.
?*?Released?into?the?public?domain.
?*?整理者:極客工坊bg1lsy?(lsy@sogou.com)
?*?整理時(shí)間:2013.05.25
?*/
/******************************************************************************
?*?包含文件
?******************************************************************************/
#include?
#include?
/******************************************************************************
?*?構(gòu)造?RFID
?*?int?chipSelectPin?RFID?/ENABLE?pin
?******************************************************************************/
RFID::RFID(int?chipSelectPin?int?NRSTPD)
{
??_chipSelectPin?=?chipSelectPin;
??_NRSTPD?=?NRSTPD;
??pinMode(_chipSelectPinOUTPUT);?????//?設(shè)置管腳_chipSelectPin為輸出并連接到模塊使能口
??digitalWrite(_chipSelectPin?LOW);
??pinMode(_NRSTPDOUTPUT);????????????//?設(shè)置管腳NRSTPD為輸出,非重置或掉電
??digitalWrite(_NRSTPD?HIGH);
}
/******************************************************************************
?*?用戶?API
?******************************************************************************/
/******************************************************************************
?*?函?數(shù)?名:isCard
?*?功能描述:尋卡
?*?輸入?yún)?shù):無(wú)
?*?返?回?值:成功返回ture?失敗返回false
?******************************************************************************/
bool?RFID::isCard()
{
??unsigned?char?status;
??unsigned?char?str[MAX_LEN];
??//尋天線區(qū)內(nèi)未進(jìn)入休眠狀態(tài)
??status?=?MFRC522Request(PICC_REQIDL?str);
??if?(status?==?MI_OK)
????return?true;
??else
????return?false;
}
/******************************************************************************
?*?函?數(shù)?名:readCardSerial
?*?功能描述:返回卡的序列號(hào)?4字節(jié)
?*?輸入?yún)?shù):無(wú)
?*?返?回?值:成功返回ture?失敗返回false
?******************************************************************************/
bool?RFID::readCardSerial(){
??unsigned?char?status;
??unsigned?char?str[MAX_LEN];
??
??//?防沖撞,返回卡的序列號(hào)?4字節(jié),存入serNum中
??status?=?anticoll(str);
??memcpy(serNum?str?5);
??
??if?(status?==?MI_OK)
????return?true;
??else
????return?false;
}
/******************************************************************************
?*?函?數(shù)?名:init
?*?功能描述:初始化RC522
?*?輸入?yún)?shù):無(wú)
?*?返?回?值:無(wú)
?******************************************************************************/
void?RFID::init()
{
??digitalWrite(_NRSTPDHIGH);
??//復(fù)位RC522
??reset();
??//Timer:?TPrescaler*TreloadVal/6.78MHz?=?15ms
??writeMFRC522(TModeReg?0x8D);???//Tauto=1;?f(Timer)?=?6.78MHz/TPreScaler?10001101
??writeMFRC522(TPrescalerReg?0x3E);??//TModeReg[3..0]?+?TPrescalerReg?00111110
??writeMFRC522(TReloadRegL?30);
??writeMFRC522(TReloadRegH?0);
??
??writeMFRC522(TxAutoReg?0x40);????//100%ASK
??writeMFRC522(ModeReg?0x3D);????//?CRC?valor?inicial?de?0x6363??00?11?11?01
??//ClearBitMask(Status2Reg?0x08);?//MFCrypto1On=0
??//writeMFRC522(RxSelReg?0x86);???//RxWait?=?RxSelReg[5..0]
??//writeMFRC522(RFCfgReg?0x7F);?????//RxGain?=?48dB
??antennaOn();????//打開天線
}
/**********
評(píng)論
共有 條評(píng)論