17 RFID卡的讀寫

2021-10-07 07:33:25 字數 2787 閱讀 6907

#include #include #define rst_pin         9

#define ss_pin 10

mfrc522 mfrc522(ss_pin, rst_pin);

mfrc522::mifare_key key;

void setup()

serial.println(f("開始掃瞄卡進行讀寫..."));

serial.print(f("使用密碼:"));

dump_byte_array(key.keybyte, mfrc522::mf_key_size);

serial.println();

serial.println(f("資料將被寫入到#1扇區"));

}void loop()

// 操作扇區1

// 扇區1包括:塊4~塊7

byte sector = 1;

byte blockaddr = 4;

byte datablock = ;//要寫入的資料

byte trailerblock = 7;

mfrc522::statuscode status;

byte buffer[18];

byte size = sizeof(buffer);

// 使用密碼a進行身份認證

serial.println(f("使用密碼a進行身份認證..."));

status = (mfrc522::statuscode) mfrc522.pcd_authenticate(mfrc522::picc_cmd_mf_auth_key_a, trailerblock, &key, &(mfrc522.uid));

if (status != mfrc522::status_ok)

// 顯示當前扇區資料

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.print(blockaddr); serial.println(f("資料:"));

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

serial.println();

// 使用密碼b進行身份認證

serial.println(f("使用密碼b進行身份認證..."));

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.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.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.print(blockaddr); serial.println(f("塊:"));

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

// 顯示當前扇區資料

serial.println(f("當前扇區資料:"));

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

serial.println();

//使放置在讀卡區的ic卡進入休眠狀態,不再重複讀卡

mfrc522.picc_halta();

// 停止讀卡模組編碼

mfrc522.pcd_stopcrypto1();

}// 十六進製制輸出

void dump_byte_array(byte *buffer, byte buffersize)

}

sd卡的讀寫

sd卡全稱為 secrue digital memory card,具有輕巧 可加密 傳輸速度高 適用於手持裝置使用等優點。二 匯流排介面 sd需要高速讀寫,同時也要使手持等嵌入式裝置能方便使用,特設有兩個訪問介面中 sd 模式介面和spi 介面。sd卡在上電初期,卡主控通過檢測引腳 dat3 來決...

CPU卡的讀寫

一般來說,對儲存卡和邏輯加密卡操作,使用接觸式ic 用讀寫器 對 cpu卡使用 cpu卡讀寫器。所謂 通用讀卡器 是指它可以對大多數流行的儲存卡和邏輯加密卡操作。而 cpu卡由於有 iso iec 7816.3 4 的規範,其通訊協議 命令格式都是相容的,被看作是一種卡。當然,也有將 通用讀卡器 與...

rfid 標籤記憶體 RFID讀寫器的主要功能及應用

rfid是一種無線通訊技術,可以通過無線電訊號識別目標並讀寫相關資料,而無需識別系統與目標之間建立機械或者光學接觸。rfid讀寫器通過天線與rfid電子標籤進行無線通訊,可以實現對標籤識別碼和記憶體資料的讀出或寫入操作。rfid讀寫器可以識別運動物體,且一次可以識別多個標籤。常用rfid讀寫器形式分...