微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 MFRC522 唤醒和检查两个标签的存在

如何解决使用 MFRC522 唤醒和检查两个标签的存在

我有一个带有 Arduino 库的 MFRC522,想经常检查标签是否仍然存在。 对于一个标签,这很容易实现。

即使在 PICC_SelectPICC_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 举报,一经查实,本站将立刻删除。