<meta name="keywords" content="庄家克星时时彩,分享点13.56M相关读写芯片RC522模块质料代码制品" />
迎接会见庄家克星时时彩-时时彩qq群-时时彩平台推荐!   登录 | 收费注册 ]   

QQ2355892364的小我空间 http://badahub.com/space-uid-157723.html [珍藏] [复制] [分享] [RSS]

博客

分享点13.56M相关读写芯片RC522模块质料代码制品

已有 109 次浏览2019-5-24 11:06

现在百度基本上搜不到RC522板子的详细操作代码,基本上贴出来的只需接线,以是此次直接放出读写操作的代码算是做供献吧。

这个是板子

建议:

把送的两个插头 ,焊上去是最好的

焊技极渣。。。

接线:  请看准色彩喽,绿色的线对应 3.3V电源,左4口是用来中止的,可以留空

板子上接法:

绿色的线插在此外一侧的3.3V口上


下面上代码:


#include <SPI.h>

#include <MFRC522.h>

#define RST_PIN         9           // 装备针脚

#define SS_PIN          10          

MFRC522 mfrc522(SS_PIN, RST_PIN);   // 培植新的RFID实例

MFRC522::MIFARE_Key key;

void setup() {

    Serial.begin(9600); // 设置串口波特率为9600

    while (!Serial);    // 假定串口没有掀开,则去世循环下去不阻拦下面的操作

    SPI.begin();        // SPI泉源

    mfrc522.PCD_Init(); // Init MFRC522 card

 

    for (byte i = 0; i < 6; i++) {

        key.keyByte[i] = 0xFF;

    }

 

    Serial.println(F("扫描卡泉源阻拦读或许写"));

    Serial.print(F("应用A和B作为键"));

    dump_byte_array(key.keyByte, MFRC522::MF_KEY_SIZE);

    Serial.println();

    

    Serial.println(F("重视,会把数据写入到卡在#1"));

}

 

 

void loop() {

    // 寻觅新卡

    if ( ! mfrc522.PICC_IsNewCardPresent())

        return;

 

    // 选择一张卡

    if ( ! mfrc522.PICC_ReadCardSerial())

        return;

 

    // 显示卡片的详细信息

    Serial.print(F("卡片 UID:"));

    dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size);

    Serial.println();

    Serial.print(F("卡片类型: "));

    MFRC522::PICC_Type piccType = mfrc522.PICC_GetType(mfrc522.uid.sak);

    Serial.println(mfrc522.PICC_GetTypeName(piccType));

 

    // 检查兼容性

    if (    piccType != MFRC522::PICC_TYPE_MIFARE_MINI

        &&  piccType != MFRC522::PICC_TYPE_MIFARE_1K

        &&  piccType != MFRC522::PICC_TYPE_MIFARE_4K) {

        Serial.println(F("仅仅合适Mifare Classic卡的读写"));

        return;

    }

 

    // 我们只应用第二个扇区

    // 笼罩扇区4

    byte sector         = 1;

    byte blockAddr      = 4;

    byte dataBlock[]    = {

        0x01, 0x02, 0x03, 0x04, //  1,  2,   3,  4,

        0x05, 0x06, 0x07, 0x08, //  5,  6,   7,  8,

        0x00, 0x00, 0x00, 0x00, //  0,0,0,0

        0x00, 0x00, 0x00, 0x00  // 0,0,0,0

    };//写入的数据界说

    byte trailerBlock   = 7;

    MFRC522::StatusCode status;

    byte buffer[18];

    byte size = sizeof(buffer);

 

    // 原来的数据

    Serial.println(F("显示原来的数据..."));

    status = (MFRC522::StatusCode) mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, trailerBlock, &key, &(mfrc522.uid));

    if (status != MFRC522::STATUS_OK) {

        Serial.print(F("身份验证掉落败?或许是卡链接掉落败"));

        Serial.println(mfrc522.GetStatusCodeName(status));

        return;

    }

 

    // 显示所有扇区

    Serial.println(F("显示所有扇区的数据"));

    mfrc522.PICC_DumpMifareClassicSectorToSerial(&(mfrc522.uid), &key, sector);

    Serial.println();

 

    // 从块儿读取数据

    Serial.print(F("读取块儿的数据在:")); Serial.print(blockAddr);

    Serial.println(F("块 ..."));

    status = (MFRC522::StatusCode) mfrc522.MIFARE_Read(blockAddr, buffer, &size);

    if (status != MFRC522::STATUS_OK) {

        Serial.print(F("读卡掉落败,没有毗连上 "));

        Serial.println(mfrc522.GetStatusCodeName(status));

    }

    Serial.print(F("数据内容在第 ")); Serial.print(blockAddr); Serial.println(F(" 块:"));

    dump_byte_array(buffer, 16); Serial.println();

    Serial.println();

 

    //泉源阻拦写入准备

    Serial.println(F("泉源阻拦写入的准备..."));

    status = (MFRC522::StatusCode) mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_B, trailerBlock, &key, &(mfrc522.uid));

    if (status != MFRC522::STATUS_OK) {

        Serial.print(F("写入掉落败,没有毗连上或许没有权限 "));

        Serial.println(mfrc522.GetStatusCodeName(status));

        return;

    }

 

    // Write data to the block

    Serial.print(F("在第: ")); Serial.print(blockAddr);

    Serial.println(F("  块中写入数据..."));

    dump_byte_array(dataBlock, 16); Serial.println();

    status = (MFRC522::StatusCode) mfrc522.MIFARE_Write(blockAddr, dataBlock, 16);

    if (status != MFRC522::STATUS_OK) {

        Serial.print(F("写入掉落败... "));

        Serial.println(mfrc522.GetStatusCodeName(status));

    }

    Serial.println();

 

    // 再次读取卡中数据,此次是写入以后的数据

    Serial.print(F("读取写入后第")); Serial.print(blockAddr);

    Serial.println(F(" 块的数据 ..."));

    status = (MFRC522::StatusCode) mfrc522.MIFARE_Read(blockAddr, buffer, &size);

    if (status != MFRC522::STATUS_OK) {

        Serial.print(F("读取掉落败... "));

        Serial.println(mfrc522.GetStatusCodeName(status));

    }

    Serial.print(F("块 ")); Serial.print(blockAddr); Serial.println(F("数据为 :"));

    dump_byte_array(buffer, 16); Serial.println();

        

    // 验证一下数据,要保证写入前后数据是相等的

    // 经由历程盘算块中的字节数目

    Serial.println(F("期待验证效果..."));

    byte count = 0;

    for (byte i = 0; i < 16; i++) {

        // 较量一下缓存中的数据(我们读出来的数据) = (我们刚刚写的数据)

        if (buffer[i] == dataBlock[i])

            count++;

    }

    Serial.print(F("婚配的字节数目 = ")); Serial.println(count);

    if (count == 16) {

        Serial.println(F("验证告成 :"));

    } else {

        Serial.println(F("掉落败,数据不婚配"));

        Serial.println(F("或许写入的内容不适当"));

    }

    Serial.println();

        

    // 转储扇区数据

    Serial.println(F("写入后的数据内容为::"));

    mfrc522.PICC_DumpMifareClassicSectorToSerial(&(mfrc522.uid), &key, sector);

    Serial.println();

 

    // 阻拦 PICC

    mfrc522.PICC_HaltA();

    //阻拦加密PCD

    mfrc522.PCD_StopCrypto1();

}

 

/**

 * 将字节数组转储为串行的十六进制值

 */

void dump_byte_array(byte *buffer, byte bufferSize) {

    for (byte i = 0; i < bufferSize; i++) {

        Serial.print(buffer[i] < 0x10 ? " 0" : " ");

        Serial.print(buffer[i], HEX);

    }

时时彩假定须要详细PCBA,PCB板。留心点关注可以找我收用度供应。

议论 (0 个议论)

facelist

您须要登录后才可以议论 登录 | 急速注册
验证问答 换一个 验证码 换一个

回顶部 幸运五张-幸运五张规则-掌联幸运五张安卓版 捕鱼达人3-捕鱼达人3无限金币免费版 北京pk10-北京pk10新凤凰-凤凰pk10预测 安徽福彩网-安徽福彩快3网上购买 888棋牌游戏-盛大娱乐棋牌平台-棋牌电玩城送彩金 助赢时时彩-韩国时时彩助赢-韩国时时彩助赢计划 亿酷棋牌-象棋棋牌-棋牌游戏娱乐下载 北京pk10开奖-pk10赛车群-pk10开奖首选网上手游 qq捕鱼大亨-千炮捕鱼-qq游戏捕鱼大亨 时时彩后二-时时彩后二技巧-时时彩后二计划 开心棋牌-娱乐棋牌送救济金-四方棋牌送救济金 11选5软件-快赢11选5软件-11选5玩法 波克棋牌-现金牛牛棋牌-亲朋棋牌游戏手游 亲朋棋牌-舟山99棋牌-唐朝电玩城棋牌 天逸时时彩-时时彩开奖结果-时时彩全天计划稳赢版