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

键盘打印 UID MFRC522 Arduino Leonardo

如何解决键盘打印 UID MFRC522 Arduino Leonardo

我想用 Arduino Leonardo 打印卡片的 UID 作为 HID。

这是我的代码

void loop() {
if (  mfrc522.PICC_IsNewCardPresent()) {


// Select one of the cards
     if (  mfrc522.PICC_ReadCardSerial()) {



  // Dump debug info about the card; PICC_HaltA() is automatically called
         mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
         Keyboard.print(mfrc522.uid);
    }
  }
}

这是编译器所说的

note:   no kNown conversion for argument 1 from 'MFRC522::Uid' to 'const Printable&'
exit status 1

有人知道怎么做吗?

解决方法

我相信您面临的问题是您正在尝试打印一个 MFRC522::Uid,它是一个十六进制数,例如 00 00 00 00keyboard.print() 只接受 charintstring 根据:Arduino.cc。我找到了以下代码片段 here。我相信它可以解决您的问题。它应该写:"Card UID: 00 00 00 00"

Serial.print("Card UID:");    //Dump UID
for (byte i = 0; i < mfrc522.uid.size; i++) {
    Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
    Serial.print(mfrc522.uid.uidByte[i],HEX);
} 

注意:如果您使用的是 Keyboard.print(),我相信您需要在设置方法中使用 Keyboard.begin()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。