arduino - 如何从 RFID 卡读取数据,然后通过串行监视器用新数据覆盖它?
问题描述
我的项目首先需要我的 arduino 代码,从特定的 RFID 块读取数据,然后将其显示在串行监视器上。显示后,我需要通过串行监视器输入来用新数据替换/覆盖它。我的问题是,我如何做到这一点,而不需要在我的 RFID 阅读器附近连续 2 次 RFID 抽头,然后才能真正写入新数据?
我的代码是这样的:
// code inside the loop
//-----------------------------------------Block 12 Read--------------------------------------
byte Hash1[18];
block = 12;
len = 18;
status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(mfrc522.uid)); //line 834 of MFRC522.cpp file
if (status != MFRC522::STATUS_OK) {
Serial.print(F("Authentication failed: "));
Serial.println(mfrc522.GetStatusCodeName(status));
return;
}
status = mfrc522.MIFARE_Read(12, Hash1, &len);
if (status != MFRC522::STATUS_OK) {
return;
}
//SERIAL PRINT
for (uint8_t i = 0; i < 16; i++){
if (Hash1[i] != 32){
Hash1[i];
IHash1[i] = (char)Hash1[i];
}
}
InitialHash = String(InitialHash + IHash1);
len ="";
Serial.println(InitialHash);
InitialHash = "";
//-----------------------------------------Block 12 Write--------------------------------------
if (Serial.available()) {
len = Serial.readBytes((char *) buffer, 38) ; // read family name from serial
for (byte i = len; i < 30; i++) buffer[i] = ' '; // pad with spaces
block = 12;
status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(mfrc522.uid));
if (status != MFRC522::STATUS_OK) {
return;
}
else
// Write block
status = mfrc522.MIFARE_Write(block, buffer, 16);
if (status != MFRC522::STATUS_OK) {
return;
}
}
mfrc522.PICC_HaltA(); // Halt PICC
mfrc522.PCD_StopCrypto1(); // Stop encryption on PCD
解决方案
推荐阅读
- javascript - 以 TypeScript 友好的方式填充动态 React Router URL 路径参数
- java - 无法为 java 邮件会话查找 JNDI 资源。无法连接到主机,端口:localhost,25;超时-1;
- devise - 如果从视图发起(例如密码重置),Devise Mailer 视图如何访问请求对象
- typescript - 组件代码错误时组件测试通过
- c# - 读取 Streamreader 值
- python - !pip 安装 ktrain 错误
- android - 合并两个位图
- django - 使用 django-resized 调整图像大小
- reactjs - 如何向自定义组件添加验证?
- javascript - 反应并重新选择