#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讀寫器形式分...