如何解决使用 MFRC522 唤醒和检查两个标签的存在
我有一个带有 Arduino 库的 MFRC522,想经常检查标签是否仍然存在。 对于一个标签,这很容易实现。
即使在 PICC_Select
和 PICC_HaltA
范围内有多个标签,也很容易实现仅读取新标签。在这种情况下,旧标签不会干扰 select 调用。
问题是我还想检查范围内是否有 2 个 TAG。
在这种情况下,当 STATUS_ERROR
的范围内有多个标签或只有一个标签 uid 可用于 PICC_Select
(通常是具有较高 ID 的标签)时,我只会得到 PICC_Select
。
是否有可能仅停止一个标签或仅唤醒具有已知 UID 的特定标签?
[...]
result = mfrc522.PICC_WakeupA(bufferATQA,&bufferSize);
if(result != MFRC522::StatusCode::STATUS_OK)
return -1;
while(true) {
cardUidTmp = cardUidActivePrev[pos];
result = mfrc522.PICC_Select(&cardUidTmp);
if (result != MFRC522::StatusCode::STATUS_OK) {
break;
}
pos +=1;
// tired this but it does not help to detect more than one card
//mfrc522.PICC_HaltA();
snprintf(logBuf,sizeof(logBuf),"card found is %d:%d:%d:%d\n",cardUidTmp.uidByte[0],cardUidTmp.uidByte[1],cardUidTmp.uidByte[2],cardUidTmp.uidByte[3]
);
Serial.print(logBuf);
if(cardUidActiveCount<sizeof(cardUidActive)/sizeof(cardUidActive[0])) {
cardUidActive[cardUidActiveCount]=cardUidTmp;
cardUidActiveCount +=1;
}
}
[...]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。